This API includes complete documentation in multiple formats:
- Swagger UI: Visit
/api/docswhen server is running - OpenAPI Spec: Available at
/api/docs.json
- Manual Collection:
docs/postman/Phoenix-IMF-Gadget-API.postman_collection.json - Auto-generated Collection:
docs/postman/Phoenix-IMF-Gadget-API-Auto.postman_collection.json - Development Environment:
docs/postman/Phoenix-IMF-Development.postman_environment.json - Production Environment:
docs/postman/Phoenix-IMF-Production.postman_environment.json
See docs/README.md for complete documentation usage instructions.
-
Install dependencies:
npm install
-
Start the server:
npm start
-
View documentation:
- Open
http://localhost:3000/api/docsfor Swagger UI - Import Postman collections from
docs/postman/folder
- Open
POST /api/users/register- Register new userPOST /api/users/login- User login (get JWT token)POST /api/users/get-token- Generate API token (requires JWT)
GET /api/gadgets- List gadgets (optional status filter)GET /api/gadgets?status=- List gadgets (optional status filter)- Status : 'Available', 'Deployed', 'Destroyed', 'Decommissioned'
POST /api/gadgets- Register new gadgetPATCH /api/gadgets- Updates the existing gadgetDELETE /api/gadgets- Decommission gadgetPOST /api/gadgets/:id/self-destruct- Initiates self destruct for a gadegt
- Register/Login → Get JWT access token
- Get API Token → Use JWT to generate API key
- Access Gadgets → Use API key in
x-api-keyheader
npm run docs:generate- Generate OpenAPI specificationnpm run postman:generate- Generate Postman collection from OpenAPInpm run docs:build- Generate all documentation
npm run dev # Start with nodemon
npm run test-docs # Test documentation generation- Implmenting rate limiting
- Token regeneration

