12 KiB
Corrad AF 2024 API Platform - Complete API Endpoints Documentation
This document provides a comprehensive list of all API endpoints available in the Corrad AF 2024 API Platform project.
Table of Contents
- Authentication APIs
- Business Logic APIs
- API Platform APIs
- Metabase Integration APIs
- Development Tools APIs
Authentication APIs
POST /api/auth/login
Description: Authenticate user and receive access/refresh tokens Parameters:
username
(string, required): User's usernamepassword
(string, required): User's password
Response:
{
"statusCode": 200,
"message": "Login success",
"data": {
"username": "user@example.com",
"roles": ["admin", "user"]
}
}
GET /api/auth/logout
Description: Logout user and clear authentication cookies
GET /api/auth/validate
Description: Validate current authentication token
Business Logic APIs
POST /api/analyze-asnaf
Description: Analyze Asnaf profile using AI/OpenAI integration to determine eligibility and assistance recommendations Parameters:
monthlyIncome
(string): Monthly income amountotherIncome
(string): Other income sourcestotalIncome
(string): Total income amountoccupation
(string): Applicant's occupationmaritalStatus
(string): Marital statusdependents
(array): List of dependents
Response:
{
"hadKifayahPercentage": "75%",
"kategoriAsnaf": "Miskin",
"kategoriKeluarga": "Miskin (50-100% HK)",
"cadanganKategori": "Miskin",
"statusKelayakan": "Layak (Miskin)",
"cadanganBantuan": [
{"nama": "Bantuan Kewangan Bulanan", "peratusan": "90%"},
{"nama": "Bantuan Makanan Asas", "peratusan": "75%"}
],
"ramalanJangkaMasaPulih": "6 bulan",
"rumusan": "Pemohon memerlukan perhatian segera."
}
API Platform APIs
POST /api/api-platform/send-request
Description: Proxy HTTP requests through the platform with authentication and request/response handling Parameters:
url
(string, required): Target URL to send request tomethod
(string): HTTP method (GET, POST, PUT, DELETE, etc.)headers
(array): Request headersparams
(array): Query parametersauth
(object): Authentication configurationrequestBody
(object): Request body configurationtimeout
(number): Request timeout in milliseconds
POST /api/api-platform/oauth2/client-credentials
Description: Obtain OAuth2 access token using client credentials flow Parameters:
client_id
(string, required): OAuth2 client IDclient_secret
(string, required): OAuth2 client secretgrant_type
(string, required): Grant type (client_credentials)scope
(string): Requested scopes
POST /api/api-platform/oauth2/exchange-code
Description: Exchange authorization code for access token in OAuth2 flow Parameters:
code
(string, required): Authorization codeclient_id
(string, required): OAuth2 client IDclient_secret
(string, required): OAuth2 client secretredirect_uri
(string, required): Redirect URI
Metabase Integration APIs
GET /api/metabase/token
Description: Get authentication token for Metabase integration
Development Tools APIs
User Management
GET /api/devtool/user/list
Description: Get list of all users (excluding deleted)
POST /api/devtool/user/add
Description: Create a new user Parameters:
userUsername
(string, required): UsernameuserFullName
(string, required): Full nameuserEmail
(string, required): Email addressuserPhone
(string): Phone numberuserPassword
(string, required): Passwordroles
(array): Assigned roles
PUT /api/devtool/user/edit
Description: Update existing user Parameters:
userID
(string, required): User IDuserFullName
(string): Updated full nameuserEmail
(string): Updated emailuserPhone
(string): Updated phoneroles
(array): Updated roles
DELETE /api/devtool/user/delete
Description: Soft delete user (mark as deleted) Parameters:
userID
(string, required): User ID to delete
Role Management
GET /api/devtool/role/list
Description: Get list of all roles
POST /api/devtool/role/add
Description: Create a new role Parameters:
roleName
(string, required): Role nameroleDescription
(string): Role description
PUT /api/devtool/role/edit
Description: Update existing role Parameters:
roleID
(string, required): Role IDroleName
(string): Updated role nameroleDescription
(string): Updated description
DELETE /api/devtool/role/delete
Description: Delete role Parameters:
roleID
(string, required): Role ID to delete
Menu Management
GET /api/devtool/menu/user-list
Description: Get menu items for users
GET /api/devtool/menu/role-list
Description: Get menu items for roles
POST /api/devtool/menu/add
Description: Add new menu item Parameters:
title
(string, required): Menu item titlepath
(string, required): Menu item pathicon
(string): Icon nameparent
(string): Parent menu IDorder
(number): Display order
PUT /api/devtool/menu/edit
Description: Edit existing menu item Parameters:
id
(string, required): Menu item IDtitle
(string): Updated titlepath
(string): Updated pathicon
(string): Updated icon
DELETE /api/devtool/menu/delete
Description: Delete menu item Parameters:
id
(string, required): Menu item ID
POST /api/devtool/menu/overwrite-navigation
Description: Overwrite entire navigation structure Parameters:
navigation
(array, required): New navigation structure
POST /api/devtool/menu/new-add
Description: New add menu functionality
ORM & Database Management
GET /api/devtool/orm/schema
Description: Get database schema information
GET /api/devtool/orm/studio
Description: Access ORM studio interface
GET /api/devtool/orm/data/get
Description: Get data from specific table Query Parameters:
table
(string, required): Table namelimit
(number): Number of records to return
GET /api/devtool/orm/table/config
Description: Get table configuration settings
POST /api/devtool/orm/table/create
Description: Create new database table Parameters:
tableName
(string, required): New table namecolumns
(array, required): Column definitions
GET /api/devtool/orm/table/modify/get
Description: Get table structure for modification Query Parameters:
table
(string, required): Table name
POST /api/devtool/orm/table/modify
Description: Modify existing table structure Parameters:
tableName
(string, required): Table to modifymodifications
(object, required): Modification instructions
DELETE /api/devtool/orm/table/delete/{table}
Description: Delete table by name (dynamic route) Path Parameters:
table
(string, required): Table name to delete
Configuration Management
GET /api/devtool/config/site-settings
Description: Get/manage site settings
GET /api/devtool/config/env
Description: Get environment configuration
POST /api/devtool/config/upload-file
Description: Upload file to server Body: multipart/form-data
file
(file, required): File to uploaddestination
(string): Upload destination path
GET /api/devtool/config/loading-logo
Description: Get/set loading logo configuration
POST /api/devtool/config/add-custom-theme
Description: Add custom theme configuration Parameters:
themeName
(string, required): Theme namecolors
(object): Color configurationfonts
(object): Font configuration
API Management Tools
GET /api/devtool/api/list
Description: List all available APIs
POST /api/devtool/api/save
Description: Save API configuration Parameters:
apiName
(string, required): API nameendpoint
(string, required): API endpointmethod
(string, required): HTTP methoddescription
(string): API descriptionparameters
(array): API parametersresponses
(object): Response definitions
POST /api/devtool/api/linter
Description: Lint API code for errors and best practices Parameters:
code
(string, required): Code to lintlanguage
(string, required): Programming language
POST /api/devtool/api/prettier-format
Description: Format code using Prettier Parameters:
code
(string, required): Code to formatlanguage
(string, required): Programming language
GET /api/devtool/api/file-code
Description: Get source code of API file Query Parameters:
file
(string, required): File path
Content Management
Template Management
GET /api/devtool/content/template/get-list
Description: Get list of available templates
GET /api/devtool/content/template/list
Description: List all templates
POST /api/devtool/content/template/import
Description: Import template Parameters:
templateName
(string, required): Template nametemplateContent
(string, required): Template contenttemplateType
(string, required): Template type
GET /api/devtool/content/template/tag
Description: Get template tags
Code Management
GET /api/devtool/content/code/file-code
Description: Get source code of file Query Parameters:
file
(string, required): File path
POST /api/devtool/content/code/save
Description: Save code to file Parameters:
file
(string, required): File pathcontent
(string, required): File content
POST /api/devtool/content/code/linter
Description: Lint code for errors Parameters:
code
(string, required): Code to lintlanguage
(string, required): Programming language
POST /api/devtool/content/code/prettier-format
Description: Format code using Prettier Parameters:
code
(string, required): Code to formatlanguage
(string, required): Programming language
Canvas Management
GET /api/devtool/content/canvas/file-code
Description: Get canvas file code Query Parameters:
canvas
(string, required): Canvas identifier
Lookup Data
GET /api/devtool/lookup/list
Description: Get lookup data list
Base URL Configuration
- Development:
http://localhost:3000
- API Base Path:
/api
Authentication
Most endpoints require authentication via Bearer token obtained from the /api/auth/login
endpoint. The token should be included in the Authorization header:
Authorization: Bearer <your-access-token>
Response Format
All APIs follow a consistent response format:
{
"statusCode": 200,
"message": "Success message",
"data": {
// Response data
}
}
Error Handling
Error responses follow the same format with appropriate HTTP status codes:
{
"statusCode": 400,
"message": "Error message",
"errors": {
// Validation errors if applicable
}
}
Import Instructions
To import the Postman collection:
- Open Postman
- Click "Import" button
- Select "Upload Files" tab
- Choose the
postman_collection.json
file - Click "Import"
The collection includes:
- Pre-configured environment variables
- Automatic token management
- Request examples with sample data
- Organized folder structure for easy navigation
Notes
- All development tool APIs are intended for development and administrative purposes
- The API Platform provides proxy functionality for external API calls
- Business logic APIs integrate with external services like OpenAI
- Database operations through ORM tools should be used with caution in production environments