API Layer
If you generate your project by using AutoCode Solution/Code Generator, you'll have 6 methods ready for each controller.
- list
- get
- insert
- update
- delete
- bulkSave
Find them in
- BE: {YourMicroserviceName}.API.{YourTableName}Controller.cs
- UI: views/Routes/{YourTableName}/{YourTableName}PageConfig.tsx
Swagger​
We use Swagger for writing REST-based APIs.
Swagger (now the "Open API Initiative") is a framework for describing your API using a common language that everyone can understand.

- Design-first users: use Swagger Codegen to generate a server stub for your API. The only thing left is to implement the server logic – and your API is ready to go live!
- Use Swagger Codegen to generate client libraries for your API in over 40 languages.
- Use Swagger UI to generate interactive API documentation that lets your users try out the API calls directly in the browser.
- Use the spec to connect API-related tools to your API. For example, import the spec to SoapUI to create automated tests for your API.
- And more! Check out the open-source and commercial tools that integrate with Swagger.
Open API 3.0​
API layer is fully compliant with Open API 3.0 specifications. So feel free to use also at a bank which needs to comply with PSD2.
Authorization of Controllers​
By default, all methods (except login) need a bearer token as JWT to be authenticated.

Response Object of Controller/Methods​
There is a standard and generic reponse object returned for any method call. Thus, it gets easier to get familiar and integrate to UI endpoints.
| Property | Type | 
|---|---|
| success | boolean | 
| message | string | 
| errors | JSON Object Array | 
| data | JSON Object, JSON Object Array | 
Successful example:
{   
    "success": true,  
    "message": "Listed successfully",
    "errors": [],
    "data": [
              { "fullName": "John Doe", "profession": "Engineer"},
              { "fullName": "Jane Doe", "profession": "Doctor"}
           ]
}
Failed example:
{   
    "success": false,  
    "message": "Something went wrong",
    "errors": [  
                    {  
                        "code":  "1020",            
                        "message":  "fullName cannot be null",  
                        "stackTrace":  "<Stacktrace of exception>"
                    }
                ],
    "data":  {}  
}
Request Object of List Methods​
| Property | Type | 
|---|---|
| pagination | JSON Object | 
| criteria | JSON Object | 
Example:
{
  "pagination": {
    "currentPage": 0,
    "maxPage": 20,
    "totalRowCount": 0,
    "maxRowsPerPage": 100,
    "resultRowCount": 0
  },
  "criteria": {
    "fullName": "John",
    "status": 1
  },
  "GridCriterias":{
    "sortModel":[{"propertyName": "fullName", "order": "asc"}],
    "filterModel":[]
  }
}