Move /api/endpoints to /api/ftl/endpoints and add /api/ftl/endpoints documentation

Signed-off-by: DL6ER <dl6er@dl6er.de>
This commit is contained in:
DL6ER
2022-12-31 13:11:52 +01:00
parent e9f5f667fa
commit ffbe2bd370
4 changed files with 42 additions and 5 deletions
+8 -3
View File
@@ -38,6 +38,7 @@ static struct {
{ "/api/ftl/maxhistory", api_ftl_maxhistory, { false, false } },
{ "/api/ftl/gateway", api_ftl_gateway, { false, false } },
{ "/api/ftl/interfaces", api_ftl_interfaces, { false, false } },
{ "/api/ftl/endpoints", api_endpoints, { false, false } },
{ "/api/network", api_network, { false, false } },
{ "/api/history/clients", api_history_clients, { false, false } },
{ "/api/history", api_history, { false, false } },
@@ -63,7 +64,6 @@ static struct {
{ "/api/auth", api_auth, { false, false } },
{ "/api/settings/web", api_settings_web, { false, false } },
{ "/api/docs", api_docs, { false, false } },
{ "/api/endpoints", api_endpoints, { false, false } }
};
#define API_ENDPOINTS "/api/endpoints"
@@ -135,10 +135,15 @@ static int api_endpoints(struct ftl_conn *api)
return send_json_unauthorized(api);
}
cJSON *json = JSON_NEW_ARRAY();
cJSON *json = JSON_NEW_OBJ();
cJSON *endpoints = JSON_NEW_ARRAY();
// Add endpoints to JSON array
for(unsigned int i = 0; i < sizeof(api_request)/sizeof(api_request[0]); i++)
JSON_ARRAY_REF_STR(json, api_request[i].uri);
JSON_ARRAY_REF_STR(endpoints, api_request[i].uri);
// Add endpoints to JSON object
JSON_OBJ_ADD_ITEM(json, "endpoints", endpoints);
// Send response
JSON_SEND_OBJECT_UNLOCK(json);
+1 -2
View File
@@ -103,8 +103,7 @@ components:
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/dns_port'
$ref: '#/components/schemas/dns_port'
schemas:
blocking:
type: object
+30
View File
@@ -92,6 +92,27 @@ components:
schema:
allOf:
- $ref: '#/components/schemas/database'
endpoints:
get:
summary: Get list of available API endpoints
tags:
- "FTL information"
operationId: "get_endpoints"
description: |
This API hook returns the list of all available API endpoints.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/endpoints'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: 'common.yaml#/components/errors/unauthorized'
schemas:
client:
remote_addr:
@@ -389,6 +410,15 @@ components:
type: string
description: Version of embedded SQLite3 engine
example: "3.34.0"
endpoints:
type: object
properties:
endpoints:
type: array
description: Endpoints
items:
type: string
example: ["/api/dns/blocking", "/api/dns/cache", "/api/dns/port", "/api/domains", "/api/groups", "/api/lists"]
parameters:
logs:
+3
View File
@@ -107,6 +107,9 @@ paths:
/ftl/dbinfo:
$ref: 'ftl.yaml#/components/paths/dbinfo'
/ftl/endpoints:
$ref: 'ftl.yaml#/components/paths/endpoints'
/version:
$ref: 'version.yaml#/components/paths/version'