ExpressJs

⌘K
  1. Home
  2. Docs
  3. ExpressJs
  4. Authentication and Permis...
  5. Api Documentation

Api Documentation

I’ll provide you with a Postman API documentation for all the routes we’ve created in our Express.js authentication and permission system. This documentation will include the URL, HTTP method, required headers (including the token), and JSON payloads where applicable.

Here’s the Postman API documentation for your Express.js authentication and permission system:

  1. User Registration
  2. URL: http://localhost:3000/api/auth/register
  3. Method: POST
  4. Body (raw JSON):
{
  "username": "newuser",
  "email": "newuser@example.com",
  "password": "password123"
}
  1. User Login
  2. URL: http://localhost:3000/api/auth/login
  3. Method: POST
  4. Body (raw JSON):
{
  "username": "newuser",
  "password": "password123"
}

Get All Users

URL:
http://localhost:3000/api/admin/users

Method:
GET

Headers:
x-access-token: <your_jwt_token>


Get User by ID

URL:
http://localhost:3000/api/admin/users/:id

Method:
GET

Headers:
x-access-token: <your_jwt_token>


Update User

URL:
http://localhost:3000/api/admin/users/:id

Method:
PUT

Headers:
x-access-token: <your_jwt_token>

Body (raw JSON):

{
  "username": "updatedUsername",
  "email": "updatedEmail@example.com",
  "isActive": true,
  "isSuperuser": false
}

Delete User

URL:
http://localhost:3000/api/admin/users/:id

Method:
DELETE

Headers:
x-access-token: <your_jwt_token>


Bulk Assign Permissions to User

URL:
http://localhost:3000/api/admin/users/:userId/permissions/bulk-assign

Method:
POST

Headers:
x-access-token: <your_jwt_token>

Body (raw JSON):

{
  "permissionIds": [1, 2, 3]
}

Bulk Remove Permissions from User

URL:
http://localhost:3000/api/admin/users/:userId/permissions/bulk-remove

Method:
POST

Headers:
x-access-token: <your_jwt_token>

Body (raw JSON):

{
  "permissionIds": [1, 2, 3]
}

  1. Create Group
  2. URL: http://localhost:3000/api/admin/groups
  3. Method: POST
  4. Headers:
  5. x-access-token: <your_jwt_token>
  6. Body (raw JSON):
{
  "name": "Administrators"
}
  1. Get All Groups
  2. URL: http://localhost:3000/api/admin/groups
  3. Method: GET
  4. Headers:
  5. x-access-token: <your_jwt_token>
  6. Get Single Group
  7. URL: http://localhost:3000/api/admin/groups/:id
  8. Method: GET
  9. Headers:
  10. x-access-token: <your_jwt_token>
  11. Update Group
  12. URL: http://localhost:3000/api/admin/groups/:id
  13. Method: PUT
  14. Headers:
  15. x-access-token: <your_jwt_token>
  16. Body (raw JSON):
{
  "name": "Super Administrators"
}
  1. Delete Group
  2. URL: http://localhost:3000/api/admin/groups/:id
  3. Method: DELETE
  4. Headers:
  5. x-access-token: <your_jwt_token>
  6. Create Permission
  7. URL: http://localhost:3000/api/admin/permissions
  8. Method: POST
  9. Headers:
  10. x-access-token: <your_jwt_token>
  11. Body (raw JSON):
{
  "name": "Can view users",
  "codename": "view_users"
}
  1. Get All Permissions
  2. URL: http://localhost:3000/api/admin/permissions
  3. Method: GET
  4. Headers:
  5. x-access-token: <your_jwt_token>
  6. Get Single Permission
  7. URL: http://localhost:3000/api/admin/permissions/:id
  8. Method: GET
  9. Headers:
  10. x-access-token: <your_jwt_token>
  11. Update Permission
  12. URL: http://localhost:3000/api/admin/permissions/:id
  13. Method: PUT
  14. Headers:
  15. x-access-token: <your_jwt_token>
  16. Body (raw JSON):
{
  "name": "Can edit users",
  "codename": "edit_users"
}
  1. Delete Permission
  2. URL: http://localhost:3000/api/admin/permissions/:id
  3. Method: DELETE
  4. Headers:
  5. x-access-token: <your_jwt_token>
  6. Assign Group to User
  7. URL: http://localhost:3000/api/admin/users/:userId/groups
  8. Method: POST
  9. Headers:
  10. x-access-token: <your_jwt_token>
  11. Body (raw JSON):
{
  "groupId": 1
}
  1. Remove Group from User
  2. URL: http://localhost:3000/api/admin/users/:userId/groups/:groupId
  3. Method: DELETE
  4. Headers:
  5. x-access-token: <your_jwt_token>
  6. Assign Permission to Group
  7. URL: http://localhost:3000/api/admin/groups/:groupId/permissions
  8. Method: POST
  9. Headers:
  10. x-access-token: <your_jwt_token>
  11. Body (raw JSON):
{
  "permissionId": 1
}
  1. Remove Permission from Group
  2. URL: http://localhost:3000/api/admin/groups/:groupId/permissions/:permissionId
  3. Method: DELETE
  4. Headers:
  5. x-access-token: <your_jwt_token>
  6. Assign Permission to User
  7. URL: http://localhost:3000/api/admin/users/:userId/permissions
  8. Method: POST
  9. Headers:
  10. x-access-token: <your_jwt_token>
  11. Body (raw JSON):
{
  "permissionId": 1
}
  1. Remove Permission from User
  2. URL: http://localhost:3000/api/admin/users/:userId/permissions/:permissionId
  3. Method: DELETE
  4. Headers:
  5. x-access-token: <your_jwt_token>
  6. Public Route Example
  7. URL: http://localhost:3000/api/example/public
  8. Method: GET
  9. Protected Route Example
  10. URL: http://localhost:3000/api/example/protected
  11. Method: GET
  12. Headers:
  13. x-access-token: <your_jwt_token>
  14. Admin Route Example
  15. URL: http://localhost:3000/api/example/admin
  16. Method: GET
  17. Headers:
  18. x-access-token: <your_jwt_token>

To use these routes in Postman:

  1. Create a new request for each route.
  2. Set the HTTP method and URL as specified.
  3. For routes requiring authentication, add the x-access-token header with the JWT token you received from the login route.
  4. For POST and PUT requests, set the body to “raw” and select JSON format, then input the provided JSON payload.
  5. Send the request and check the response.

Remember to replace :id, :userId, :groupId, and :permissionId with actual IDs when testing these routes. Also, make sure your server is running and the database is properly set up before testing these endpoints.

How can we help?