nano-run/_docs/api.md
Alexander Baryshnikov 4edfaa4d26 initial code added
2020-09-10 18:11:34 +08:00

115 lines
2.5 KiB
Markdown

# API
Base url: `/{application}`
## Start process
|||
|------------|------|
| **Method** | POST |
| **Path** | / |
Saves and enqueue request. Return 303 See Other on success with headers.
* `X-Correlation-Id` - with ID of request
* `Location` - URL to status
Clients can use cUrl flag `-L` to automatically follow redirect
curl -L -d '' 'http://127.0.0.1:8989/app/'
## Get status
|||
|------------|------------------|
| **Method** | GET |
| **Path** | /{correlationId} |
Returns JSON with full meta-data of request and following headers:
* `Content-Version` - number of attempts
* `Last-Modified` - latest of time of creation, time of last attempt or completion time
* `Location` - URL to the complete attempt
* `X-Status` - status of request processing: `complete` or `processing`
* `X-Last-Attempt` - id of last attempt
* `X-Last-Attempt-At` - time of last attempt
* `X-Correlation-Id` - with ID of request
Body example:
```json
{
"created_at": "2020-09-10T17:11:33.598542177+08:00",
"complete_at": "2020-09-10T17:11:33.616550544+08:00",
"attempts": [
{
"code": 200,
"headers": {},
"id": "51748767-e89b-48a1-8b00-b9c1f0fdc9bb",
"created_at": "2020-09-10T17:11:33.614030236+08:00"
}
],
"headers": {
"Accept": [
"*/*"
],
"Content-Length": [
"0"
],
"Content-Type": [
"application/x-www-form-urlencoded"
],
"User-Agent": [
"curl/7.68.0"
]
},
"uri": "/date/",
"method": "POST",
"complete": true
}
```
## Get complete
|||
|------------|---------------------------|
| **Method** | GET |
| **Path** | /{correlationId}/complete |
Will redirect to the complete attempt or 404
## Get attempt
|||
|------------|--------------------------------------|
| **Method** | GET |
| **Path** | /{correlationId}/attempt/{attemptId} |
Get result of processing request for the defined attempt
Returns body, code and headers same as processor returned with additional headers:
* `X-Status` - status of request processing: `complete` or `processing`
* `X-Processed` - `true` to distinguish result
## Get request
|||
|------------|--------------------------|
| **Method** | GET |
| **Path** | /{correlationId}/request |
Get request same as it was POSTed for the defined ID
Returns body and headers same as processor got from client with additional headers:
* `X-Method` - request method (currently always `POST`)
* `X-Request-Uri` - request URI
* `Last-Modified` - time of creation