While using 2N® Access Commander, there is a chance to customize your approach by using the REST API.
Available commands are called End-points. The list of the end-points is in the Access Commander HTTP API manual:
https://wiki.2n.cz/acc/latest/en/6-http-api
Note: Each endpoint starts with the response of the Access Commander to the specific command. The command is always below.
Several points before we start:
- For the first time using the Access Commander after importing the appliance, it is needed to use the web interface to login as the administrator ("Admin") to change the default password ("2n")
- While accessing the Access Commander using the REST API and using for example the app Postman, please, disable the SSL certificate verification first. There is no domain that can sign the certificate and a self-signed is not considered as trusted automatically by default.
- All data are written in the Command-Line and Body in the format raw / JSON
- One moment before we start. When editing or deleting data, you need to be aware of the parameter's ID, which is in the URL, and a parameter ModifiedGuid which prevents the database from any inconsistency, in case of the situation when more machines are trying to edit the same parameters at the same time.
- If you are not sure how to process some commands, please, get inspiration from the console in the web browser.
____________________________________________________________________________________________________________________________________________________
Examples:
At this moment, we are ready to post the commands. First of all, we use the valid credentials to login:
(Let's consider we have an Access Commander using an IP 192.168.0.250, username: Admin, Password: Admin1234)
Login command:
Command:
PUT https://192.168.0.250/api/v2/login
Body(data to be sent):
{"login":"Admin","password":"Admin1234","longTimeLogin":true}
____________________________________________________________________________________________________________________________________________________
List of current users:
Now we want to receive a list of users with all the parameters
Command:
GET https://192.168.0.250/api/v2/users
____________________________________________________________________________________________________________________________________________________
Getting information about a specific user.
Each user has a unique ID called UUID. It is possible to get from the previous command.
(Lets say our user has a UUID: e7207ded-b864-424b-ad0f-e06b9d8f7527)
Command:
GET https://192.168.0.250/api/v2/users/e7207ded-b864-424b-ad0f-e06b9d8f7527
Body(data to be sent):
{}
____________________________________________________________________________________________________________________________________________________
Creating a new user:
Now we want to create a new user with the name UserAPI. This user will belong to the company with the ID=1
Command:
POST https://192.168.0.250/api/v2/users
Body(data to be sent):
{"Name":"UserAPI","Company":{"Id":1}}
In the answer, there will be a parameter E.G.: "ID": "09e7eab1-7b80-4071-89c9-4969a61354e1"
____________________________________________________________________________________________________________________________________________________
Adding an RFID card for this new user:
If it is a new user and no one else could edit this user, we can assume the ModifiedGUID=0 , it is not needed to use this parameter then.
Command:
POST https://192.168.0.250/api/v2/users/09e7eab1-7b80-4071-89c9-4969a61354e1/cards
Body(data to be sent):
{"Identification":"12345678"}
____________________________________________________________________________________________________________________________________________________
Updating RFID card (similar for other parameters):
For maintaining database consistency, we need to use a specific ID for each parameter to prevent multiple processes from modifying data at the same time. This is called ModifiedGUID and we need to get this information from the parameter before we change it. Let's say another process changed the RFID card number 3 times already to the number 12342622. We are going to find out this now.
Command:
GET https://192.168.0.250/api/v2/users/09e7eab1-7b80-4071-89c9-4969a61354e1
in the response, we will such an answer:
Now we know the GUID=3 and we can change the card number to 12121212 (note: we are adding the ID of the card position to the URL):
Command:
____________________________________________________________________________________________________________________________________________________
Creating 2 codes for a user (1234, 9876) (Note: Ordinal = ID of a code):
Command:
POST https://192.168.0.250/api/v2/users/09e7eab1-7b80-4071-89c9-4969a61354e1/codes