DEV: Add description and logo to api docs (#11984)
* DEV: Add description and logo to api docs * Rename method to avoid name collision
This commit is contained in:
parent
4af77f1e38
commit
91fb298510
|
@ -13,6 +13,67 @@ def load_spec_schema(name)
|
||||||
SpecSchemas::SpecLoader.new(name).load
|
SpecSchemas::SpecLoader.new(name).load
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def api_docs_description
|
||||||
|
<<~HEREDOC
|
||||||
|
This page contains the documentation on how to use Discourse through API calls.
|
||||||
|
|
||||||
|
> Note: For any endpoints not listed you can follow the
|
||||||
|
[reverse engineer the Discourse API](https://meta.discourse.org/t/-/20576)
|
||||||
|
guide to figure out how to use an API endpoint.
|
||||||
|
|
||||||
|
### Request Content-Type
|
||||||
|
|
||||||
|
The Content-Type for POST and PUT requests can be set to `application/x-www-form-urlencoded`,
|
||||||
|
`multipart/form-data`, or `application/json`.
|
||||||
|
|
||||||
|
### Endpoint Names and Response Content-Type
|
||||||
|
|
||||||
|
Most API endpoints provide the same content as their HTML counterparts. For example
|
||||||
|
the URL `/categories` serves a list of categories, the `/categories.json` API provides the
|
||||||
|
same information in JSON format.
|
||||||
|
|
||||||
|
Instead of sending API requests to `/categories.json` you may also send them to `/categories`
|
||||||
|
and add an `Accept: application/json` header to the request to get the JSON response.
|
||||||
|
Sending requests with the `Accept` header is necessary if you want to use URLs
|
||||||
|
for related endpoints returned by the API, such as pagination URLs.
|
||||||
|
These URLs are returned without the `.json` prefix so you need to add the header in
|
||||||
|
order to get the correct response format.
|
||||||
|
|
||||||
|
### Authentication
|
||||||
|
|
||||||
|
Some endpoints do not require any authentication, pretty much anything else will
|
||||||
|
require you to be authenticated.
|
||||||
|
|
||||||
|
To become authenticated you will need to create an API Key from the admin panel.
|
||||||
|
|
||||||
|
Once you have your API Key you can pass it in along with your API Username
|
||||||
|
as an HTTP header like this:
|
||||||
|
|
||||||
|
```
|
||||||
|
curl -X GET "http://127.0.0.1:3000/admin/users/list/active.json" \
|
||||||
|
-H "Api-Key: 714552c6148e1617aeab526d0606184b94a80ec048fc09894ff1a72b740c5f19" \
|
||||||
|
-H "Api-Username: system"
|
||||||
|
```
|
||||||
|
|
||||||
|
and this is how POST requests will look:
|
||||||
|
|
||||||
|
```
|
||||||
|
curl -X POST "http://127.0.0.1:3000/categories" \
|
||||||
|
-H "Content-Type: multipart/form-data;" \
|
||||||
|
-H "Api-Key: 714552c6148e1617aeab526d0606184b94a80ec048fc09894ff1a72b740c5f19" \
|
||||||
|
-H "Api-Username: system" \
|
||||||
|
-F "name=89853c20-4409-e91a-a8ea-f6cdff96aaaa" \
|
||||||
|
-F "color=49d9e9" \
|
||||||
|
-F "text_color=f0fcfd"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Boolean values
|
||||||
|
|
||||||
|
If an endpoint accepts a boolean be sure to specify it as a lowercase
|
||||||
|
`true` or `false` value unless noted otherwise.
|
||||||
|
HEREDOC
|
||||||
|
end
|
||||||
|
|
||||||
RSpec.configure do |config|
|
RSpec.configure do |config|
|
||||||
# Specify a root folder where Swagger JSON files are generated
|
# Specify a root folder where Swagger JSON files are generated
|
||||||
# NOTE: If you're using the rswag-api to serve API descriptions, you'll need
|
# NOTE: If you're using the rswag-api to serve API descriptions, you'll need
|
||||||
|
@ -30,7 +91,11 @@ RSpec.configure do |config|
|
||||||
openapi: '3.0.3',
|
openapi: '3.0.3',
|
||||||
info: {
|
info: {
|
||||||
title: 'Discourse API Documentation',
|
title: 'Discourse API Documentation',
|
||||||
version: 'latest'
|
'x-logo': {
|
||||||
|
url: 'https://discourse-meta.s3-us-west-1.amazonaws.com/optimized/3X/9/d/9d543e92b15b06924249654667a81441a55867eb_1_690x184.png',
|
||||||
|
},
|
||||||
|
version: 'latest',
|
||||||
|
description: api_docs_description
|
||||||
},
|
},
|
||||||
paths: {},
|
paths: {},
|
||||||
servers: [
|
servers: [
|
||||||
|
|
Loading…
Reference in New Issue