Skip to content
v1.0

AngusTester RESTful APIs Documentation

API Specification

AngusTester is built on RESTful design principles and strictly adheres to the OpenAPI 3.0 specification format.

1. Protocol Specification

  • Mandatory HTTPS Usage
    APIs are always served over HTTPS to ensure secure data transmission.

    Note: Private deployment customers may not have security certificates configured and require separate handling.

  • API Version Management
    Version numbers are embedded in URL paths:

    /api/v1/resource
    /api/v2/resource
    

2. Resource Naming Convention

  • Uniformly use lowercase letters or lower camel case naming - Examples:
    /user
    /productCategories
    /orderItems
    

3. HTTP Method Specification

Method Description Success Code Example
GET Retrieve resources 200 GET /users
POST Create resources 201 POST /users
PUT Replace entire resource (create if absent) 200 PUT /users/{id}
PATCH Partial resource update 200 PATCH /users/{id}
DELETE Delete resources 204 DELETE /users/{id}

Special Operation Patterns - Use verbs/adjectives for granular operations:

PATCH /users/{id}/enabled   # Enable user
POST /orders/{id}/cancel    # Cancel order

4. Security Authentication

OAuth 2.0 Authentication - Protected resources require authentication header:
Authorization: Bearer <access_token>

5. Request Parameter Specification

Request Headers

Content-Type: application/json
Accept: application/json
Authorization: Bearer xxxxxxxxxxxx

Query Parameters

Parameter Type Format Example Description
Pagination ?pageNo=2&pageSize=20 Page number and size
Sorting ?orderBy=createdDate&orderSort=DESC Sort field and direction
Filtering ?status=active&role=admin Field filters

Request Body (JSON)

{
  "name":"John Doe",
  "email":"john@example.com",
  "role":"member",
  "preferences":{
    "notifications":true,
    "theme":"dark"
  }
}

6. Response Specification

Status Codes

Code Meaning
200 OK - Request succeeded
201 Created - Resource created
204 No Content - Success, no content
400 Bad Request - Client error
401 Unauthorized - Not authenticated
403 Forbidden - Access denied
404 Not Found - Resource not exist
429 Too Many Requests - Rate limited
500 Internal Server Error - Server failure

Response Body Structure

{
  "code":"S",
  "msg":"Operation succeeded",
  "data":{
    "total":42,
    "list":[
      {
        "id":"301222970049691648",
        "username":"U20250628001287",
        "email":"user@example.com"
      }
    ]
  },
  "datetime":"2025-06-15 14:49:56",
  "ext":{}
}

Quick Start Guide

1. Obtaining Access Tokens

System Access Token

Use Case: System-to-system integration
Acquisition Process:

  1. Log in to AngusGM application
  2. Navigate to: SystemSystem Tokens
  3. Create new token:
    • Enter token name
    • Set permission scope
    • Configure expiration time
  4. Click Create Token to generate new credentials

Note: System tokens have full API permissions without data restrictions.

User Access Token

Use Case: User-level API operations
Acquisition Process:

  1. Log in to AngusGM application
  2. Access: User ProfileAccess Tokens
  3. Create new token:
    • Verify user password
    • Set token name
    • Configure validity period
  4. Click Create Token to generate credentials

Note: User tokens inherit the user's API permissions and data access rights.

2. API Service Endpoints

Deployment Type Service Endpoint
SaaS Cloud Edition https://bj-c1-prod-apis.xcan.cloud/tester
Private Deployment http://TESTER_HOST:TESTER_PORT (default)
Or configured via TESTER_APIS_URL_PREFIX

3. API Call Example

curl -i 'https://bj-c1-prod-apis.xcan.cloud/tester/api/v1/task/search?pageNo=1&pageSize=10' \
  -H 'Accept: application/json'
  -H 'Authorization: Bearer 7RProMAjgCr40gMgrsnRROvMXHrXrDrzwqo7ti1V2ZXc6bjoWvVEOTkjbQnLAxMTi5fJrnET' 

Response Example:

HTTP/1.1 200 OK
Date: Sun, 15 Jun 2025 06:49:56 GMT
Content-Type: application/json
XC-Request-Id: 34acb65c2c484188a2f9f3a3f4ca3d1f

{
  "code":"S",
  "msg":"Success",
  "data":{
    "total":"1",
    "list":[
      {
        "id":"301222970049691648",
        "code":"AT00000016",
        "name":"A Task"
      }
    ]
  },
  "datetime":"2025-06-15 14:49:56"
}

Contact

License

GPL-3.0

Released under the GPL-3.0 License.