generated from SidingsMedia/service-template
-
Notifications
You must be signed in to change notification settings - Fork 0
/
openapi.yaml
95 lines (77 loc) · 3.26 KB
/
openapi.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# SPDX-FileCopyrightText: 2023-2024 Sidings Media
# SPDX-License-Identifier: MIT
openapi: 3.0.3
info:
title: Sidings Media API
description: |
## Introduction
These are the general utility APIs for Sidings Media's online
services. The APIs documented here are all open source and can be
found in our [GitHub Organisation](https://github.com/SidingsMedia).
These APIs include open APIs that require no authentication to
access, as well as the open source APIs that require some level of
authentication or authorisation to call.
## Architecture
The underlying API is split into a number of smaller services
handling different aspects. There is at least 1 service per first
level path directory, i.e. 1 service for `/messaging`, 1 service for
`/stats` and so on. A full breakdown of which services map to which
paths can be found below, along with links to their respective
repositories.
| Path Base | Service Name | Repository |
|---|---|---|
| `/messaging` | `messaging` | https://github.com/SidingsMedia/messaging.git |
| `/terms` | `static` | https://github.com/SidingsMedia/static.git |
| `/openapi` | `openapi` | https://github.com/SidingsMedia/openapi.git |
| `/openapi.json` | `openapi` | https://github.com/SidingsMedia/openapi.git |
| `/stats` | stats | https://github.com/plausible/analytics.git |
Each service will expose a health check endpoint that will return a
plaintext `200 OK` response when called. This is documented by this
specification.
## Operation
### Service Status
We constantly monitor our API infrastructure to try and prevent
issues occurring, and to respond quickly when they do occur, however
due to the nature of Sidings Media, we can not guarantee service
availability. To view the current status of the API as well as the
rest of our web services, you can visit our status page at
[status.sidingsmedia.com](https://status.sidingsmedia.com). Here you
will find the current service status as well as any notes on
incidents or planned maintenance outages.
### Rate limits
A number of endpoints impose rate limits in order to prevent abuse.
For hopefully obvious reasons, the rate limits and the system used
to calculate them is not publicly documented. However, for endpoints
that do implement a rate limit, you will receive a http `429`
response with the `retry-after` header set indicating after how many
seconds you should restart making requests.
version: 0.5.1
servers:
- url: https://api.sidingsmedia.com/
description: Production
- url: http://localhost:{port}
description: Local development
variables:
port:
default: '3000'
tags:
- name: messaging
description: |
Communication channels between Sidings Media and the User
- name: docs
description: API documentation endpoints
paths:
/messaging/contact:
$ref: paths/messaging/contact.yaml
/messaging/health:
$ref: paths/messaging/health.yaml
/openapi/health:
$ref: paths/openapi/health.yaml
/static/health:
$ref: paths/static/health.yaml
/terms:
$ref: paths/terms.yaml
/stats/event:
$ref: paths/stats/event.yaml
/stats/health:
$ref: paths/stats/health.yaml