theme
This commit is contained in:
142
doc/api.md
142
doc/api.md
@@ -1,48 +1,130 @@
|
||||
# TestArena API Reference
|
||||
|
||||
TestArena provides a RESTful API for programmatic job submission and status monitoring.
|
||||
|
||||
## Base URL
|
||||
`http://<server-ip>:8080/api`
|
||||
|
||||
All API endpoints are prefixed with `/api`.
|
||||
|
||||
```
|
||||
http://<your-server>/api
|
||||
```
|
||||
|
||||
## Authentication
|
||||
|
||||
The API uses Basic Authentication. You must provide your username and password in the request body for job submission.
|
||||
|
||||
## Endpoints
|
||||
|
||||
### 1. Submit a New Queue
|
||||
`POST /queue`
|
||||
Submits a new set of tasks to the execution queue.
|
||||
**Payload:**
|
||||
### 1. Submit Job
|
||||
|
||||
Submit a new test job to the queue.
|
||||
|
||||
- **URL**: `/submit_job`
|
||||
- **Method**: `POST`
|
||||
- **Content-Type**: `application/json`
|
||||
|
||||
#### Request Body
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| `username` | string | Yes | Your TestArena username |
|
||||
| `password` | string | Yes | Your TestArena password |
|
||||
| `branch_name` | string | Yes | Git branch name to test |
|
||||
| `scenarios` | array | Yes | List of scenario names to execute |
|
||||
|
||||
#### Example Request
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:5000/api/submit_job \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"username": "admin",
|
||||
"password": "your_password",
|
||||
"branch_name": "feature/new-driver",
|
||||
"scenarios": ["adc_init_test", "gpio_init_test"]
|
||||
}'
|
||||
```
|
||||
|
||||
#### Success Response
|
||||
|
||||
**Code**: `200 OK`
|
||||
|
||||
```json
|
||||
{
|
||||
"source": "branch_name",
|
||||
"job_id": [
|
||||
"environment",
|
||||
{
|
||||
"task_id": "scenario_path"
|
||||
}
|
||||
]
|
||||
"success": true,
|
||||
"job_id": 123,
|
||||
"status": "waiting",
|
||||
"remote_triggered": true,
|
||||
"message": "Job submitted successfully"
|
||||
}
|
||||
```
|
||||
|
||||
### 2. Get Status
|
||||
`GET /status/{id}`
|
||||
Gets the status of a specific queue or task.
|
||||
#### Error Response
|
||||
|
||||
### 3. Abort Queue or Task
|
||||
`POST /abort/{id}`
|
||||
Aborts a waiting or running queue or a single task.
|
||||
**Code**: `401 Unauthorized`
|
||||
|
||||
### 4. Delete Queue
|
||||
`DELETE /delete/{id}`
|
||||
Permanently deletes a queue and its associated data.
|
||||
```json
|
||||
{
|
||||
"error": "Invalid credentials"
|
||||
}
|
||||
```
|
||||
|
||||
## Local API (Web App)
|
||||
**Code**: `400 Bad Request`
|
||||
|
||||
### Get Job Details
|
||||
`GET /jobs/{job_id}`
|
||||
```json
|
||||
{
|
||||
"error": "Missing required fields: username, password, branch_name, scenarios"
|
||||
}
|
||||
```
|
||||
|
||||
### Get Job Status (Triggers Update)
|
||||
`GET /jobs/{job_id}/status`
|
||||
---
|
||||
|
||||
### Abort Job
|
||||
`POST /jobs/{job_id}/abort`
|
||||
### 2. Get Job Status
|
||||
|
||||
### Delete Job
|
||||
`POST /jobs/{job_id}/delete`
|
||||
Retrieve the status and details of a specific job.
|
||||
|
||||
- **URL**: `/job/<job_id>`
|
||||
- **Method**: `GET`
|
||||
|
||||
#### URL Parameters
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| `job_id` | integer | Yes | The ID of the job to retrieve |
|
||||
|
||||
#### Example Request
|
||||
|
||||
```bash
|
||||
curl http://localhost:5000/api/job/123
|
||||
```
|
||||
|
||||
#### Success Response
|
||||
|
||||
**Code**: `200 OK`
|
||||
|
||||
```json
|
||||
{
|
||||
"job_id": 123,
|
||||
"status": "in_progress",
|
||||
"branch_name": "feature/new-driver",
|
||||
"scenarios": ["adc_init_test", "gpio_init_test"],
|
||||
"remote_results": {
|
||||
"adc_init_test": ["PASS", "http://.../report.html"],
|
||||
"gpio_init_test": ["FAIL", "http://.../report.html"]
|
||||
},
|
||||
"created_at": "2023-10-27T10:00:00",
|
||||
"completed_at": null,
|
||||
"remote_queue_id": "123"
|
||||
}
|
||||
```
|
||||
|
||||
#### Error Response
|
||||
|
||||
**Code**: `404 Not Found`
|
||||
|
||||
```json
|
||||
{
|
||||
"error": "Job not found"
|
||||
}
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user