Documentos oficiais em docs/
-
Para o uso da API, você deve cadastrar uma serial key válida.
-
No caso de retornar um código extenso ou um número aleatório, você deve converter o valor do result code de DECIMAL para HEXADECIMAL e consultar os campos ErrorCode no swagger para saber a razão do erro respectivo. Exemplo:
"Result": {
"ResultCode": 16777237
}- Você pode ver todos os endpoints e como interagir através do swagger em
http://192.168.x.xx:9004/v1/docs
Para mudar o acesso ao IP do host, modifique os arquivos:
C:\Program Files\UnionCommunity\UBio Alpeta\docs\swagger.json e
C:\Program Files\UnionCommunity\UBio Alpeta\docs\swagger_kr.json
Modifique em ambos, o campo host: '192.168.x.xx:9004' com o IP do seu host.
POST http://192.168.x.xx:9004/v1/login: Retorna seu usuário se o login for correto e um token (UUID)Caso o login seja feito corretamente.{ "userId": "1234", "password": "1111", "userType": 0 }{ "Result": { "ResultCode": 0 } } "AccountInfo": { "UserID": 1000000000000000000, "UniqueID": "", "Uuid": "e772f50c-77d8-4f54-4618-bd72ae1b0e3a", <--- Utilizar no campo authorization do header "Name": "Master", "LoginPW": "", "Privilege": 1, "FirstLoginFlag": 0, "ServerID": 11, "LoginAllowed": 1, "LoginFailCount": 0, "WebLogin": 1, "VisitLogin": 0, "LoginIP": "192.168.1.33", "LoginTime": "2023-10-11 09:41:55", "LastLoginIP": "192.168.1.33", "LastLoginTime": "2023-10-10 14:47:01", "JwtToken": "", "UserAff": "" }, ...
Você então deverá utilizar o UUID para ter autorização para os demais endpoints.

POST http://192.168.x.xx:9004/v1/license/activate: Ativa a licença do dispositivoCaso a licença seja ativada corretamente.{ "Mode": 1, "ProductID": 1, "SerialKey": "XXXXXX-XXXXXX-XXXXXX-XXXXXXXX", "CustomerID": "customerid", "CompanyName": "company name", "ClientKey": "" }{ "Result": { "ResultCode": 0 } }
O modo de ativação pode é online ("Mode": 1).
Você deverá adicionar uma serial key, ela será evaluada externamente e retornará uma licença válida para o Alpeta.
O CustomerID é obrigratório, mas pode ser qualquer valor.
GET http://192.168.x.xx:9004/v1/license: Requisita a licença do registrada
Caso a licença esteja registrada corretamente.
{
"Result": {
"ResultCode": 0
},
"LicenseInfo": {
"LicenseType": 10,
"LicenseKey": "XXXXXX-XXXXXX-XXXXXX-XXXXXX-XX",
"SerialKey": "XXXXXX-XXXXXX-XXXXXX-XXXXXXXX",
"CustomerID": "customerid",
"CompanyName": "company name",
"MacAddress": "",
"ExpireAt": "",
"Status": " 1: License expiration "
}
}POST http://192.168.x.xx:9004/v1/visitor/visitApplication : Requisita uma visita
{
"VisitInfo": {
"StartTime": "2020-05-11 00:00:00",
"EndTime": "2020-05-11 23:59:00",
"Purpose": "test",
"VisitTargetID": 1,
"VisitTargetUserName": "1",
"VisitTargetPositionName": "",
"VisitTargetGroupName": "",
"Password": "1111"
},
"VisitorList": [
{
"FirstName": "Fname",
"LastName": "Lname",
"Birthday": "20200404",
"Mobile": "010-1234-1234",
"Company": "company",
"CarNumber": "",
"Email": "123@test.com",
"Photo": ""
}
],
"ItemList": [
{
"ItemType": 1,
"NameType": 1,
"Name": "test",
"InOut": 1,
"SerialNum": "1234",
"Model": "test",
"Purpose": "test",
"Unit": "1234",
"Count": 4,
"Desc": "test"
}
]
}VisitInfoQuem será visitado, quando e o motivo.VisitorListLista de visitantes, com informações pessoais.ItemListLista de itens que serão levados para a visita.
Caso a visita seja registrada corretamente.
{
"Result": {
"ResultCode": 0
}
}Consultando o swagger, você pode ver que é possível deletar ou cancelar uma visita, atualizar uma visita. Além de também poder convidar para uma visita utilizando um e-mail.
Observe, que existem duas URIs, /visit e /visitor.
A diferença é que /visit é para gerenciar visitas registradas e /visitor é para gerenciar requisições relacionadas a visitas.
GET http://192.168.x.xx:9004/v1/users: Requisita um usuário Você poderá utilizar e passar vários parâmetros.
http://192.168.x.xx:9004/v1/users?groupID=1&subInclude=true&offset=0&limit=10groupID: ID do grupo que o usuário pertencesubInclude: Incluir subgruposoffset: Offset da lista de usuários, para paginaçãolimit: Limite de usuários por página
Você pode ver todos os parâmetros extras e o que eles fazem no swagger.
{
"Result": {
"ResultCode": 0
},
"Total": {
"Count": 0
},
"UserList": [
{
"ID": "0000001",
"UniqueID": "9999",
"Name": "unioncomm",
"AuthInfo": [
1,
2,
4,
0,
0,
0,
0,
0
],
"Privilege": 1,
"RegistDate": "2018-04-11T01:30:02",
"ExpireDate": "2018-04-11T01:30:02",
"GroupCode": 0,
"AccessGroupCode": 0,
"TimezoneCode": 0,
"BlackList": 0,
"FPIdentify": 0,
"FaceIdentify": 0,
"APBZone": 0,
"EmployeeNum": "A20180100001"
}
]
}POST http://192.168.x.xx:9004/v1/users: Cria um usuário{ "UserInfo": { "ID": "9999", "UniqueID": "9999", "Name": "User9999", "AuthInfo": [ 1, 2, 3, 0, 0, 0, 0, 1 ], "Privilege": 1, "CreateDate": "2018-04-11 01:30:02", "UsePeriodFlag": 0, "RegistDate": "2018-04-11 01:30:02", "ExpireDate": "2018-04-11 01:30:02", "Password": "1111", "GroupCode": 0, "AccessGroupCode": 0, "UserType": 0, "TimezoneCode": 0, "BlackList": 0, "FPIdentify": 0, "FaceIdentify": 0, "DuressFinger": [ 1, 2, 3 ], "Partition": 0, "APBExcept": 0, "APBZone": 0, "WorkCode": "****", "MealCode": "****", "MoneyCode": "****", "MessageCode": 0, "VerifyLevel": 0, "PositionCode": 1000, "Department": "Department", "LoginPW": "Login Password", "LoginAllowed": 0, "Picture": "Picture Data ", "EmployeeNum": "A20180100001", "Email": "ABC@gmail.co.kr", "Phone": "***-****-****" }, "UserFPInfo": [ { "FingerID": 1, "MinConvType": 3, "TemplateIndex": 1, "TemplateData": "TestData" }, { "FingerID": 1, "MinConvType": 3, "TemplateIndex": 2, "TemplateData": "TestData" } ], "UserFaceInfo": [ { "UserID": 1, "Index": 1, "Type": 0, "SubIndex": 1, "TemplateSize": 4042, "TemplateData": "" }, { "UserID": 1, "Index": 1, "Type": 0, "SubIndex": 2, "TemplateSize": 4042, "TemplateData": "" }, { "UserID": 1, "Index": 1, "Type": 0, "SubIndex": 3, "TemplateSize": 4042, "TemplateData": "" }, { "UserID": 1, "Index": 1, "Type": 0, "SubIndex": 4, "TemplateSize": 4042, "TemplateData": "" }, { "UserID": 1, "Index": 1, "Type": 0, "SubIndex": 5, "TemplateSize": 4042, "TemplateData": "" } ], "UserCardInfo": [ { "CardNum": "TestNum" } ], "UserFaceWTInfo": [ { "UserID": 1, "TemplateSize": 1, "TemplateData": "TestData", "TemplateType": 1 } ], "UserIrisInfo": [ { "UserID": 1, "EyeType": 1, "TemplateSize": 1, "TemplateData": "" } ] }{ "Result": { "ResultCode": 0 } }
Pode se observar que existem inúmeros parâmetros para criar um usuário.
UserInfo: Informações do usuárioUserFPInfo: Informações de impressão digitalUserFaceInfo: Informações de faceUserCardInfo: Informações de cartãoUserFaceWTInfo: Informações de face (WT)UserIrisInfo: Informações de íris
O swagger pode apontar quais são necessárias e quais são opcionais para o registro.
Observa-se que através do sawgger, métodos CRUD são disponibilizados para gerenciar usuários, inclusive atualizar atributos específicos, verificar se uma ID já existe e etc.
