mirror of
https://gitlab.com/PronounsPage/PronounsPage.git
synced 2025-09-22 12:03:25 -04:00
Merge branch 'benpai-openapi' into 'main'
Draft: docs(api): add in openAPI v3.1.1 docs for API routes See merge request PronounsPage/PronounsPage!651
This commit is contained in:
commit
35d654d5e1
371
docs/base.yaml
Normal file
371
docs/base.yaml
Normal file
@ -0,0 +1,371 @@
|
||||
openapi: 3.1.1
|
||||
info:
|
||||
version: 1.0.0
|
||||
title: Pronouns.Page API
|
||||
description: |-
|
||||
The Pronouns.Page API allows you to retrieve and manage pronoun data for users.
|
||||
|
||||
Most of the routes listed here are considered to be public as they do not require authentication.
|
||||
However, some routes may require an API key for access to private or user-specific data.
|
||||
|
||||
In addition, some routes may take an optional `version` query parameter.
|
||||
This parameter allows you to specify the version of the pronoun data you want to retrieve.
|
||||
If not specified, version 1 will be used by default.
|
||||
|
||||
> info
|
||||
> We highly recommend using version 2 as that will be are LTS version.
|
||||
> We may remove version 1 entirely in the future.
|
||||
|
||||
## Routes
|
||||
Routing standards may be altered in the future as well. We may make a `/v1/` or `/v2/` prefix to the routes.
|
||||
Please check back here for the most up-to-date information.
|
||||
termsOfService: https://en.pronouns.page/terms/
|
||||
contact:
|
||||
name: Support
|
||||
url: https://en.pronouns.page/contact/
|
||||
email: contact@pronouns.page
|
||||
license:
|
||||
name: Opinionated Queer License (OQL) v1.1
|
||||
url: https://oql.avris.it/license/v1.1
|
||||
servers:
|
||||
- url: https://pronouns.page/api
|
||||
description: Main (production) server
|
||||
- url: https://{region}.pronouns.page/api
|
||||
description: Language-specific server
|
||||
variables:
|
||||
region:
|
||||
default: en
|
||||
enum:
|
||||
- en
|
||||
- es
|
||||
- fr
|
||||
- de
|
||||
- it
|
||||
- pt
|
||||
description: The language/region of the server to use.
|
||||
tags:
|
||||
- name: Pronouns
|
||||
description: Operations related to pronoun data
|
||||
- name: Users
|
||||
description: Operations related to user data
|
||||
paths:
|
||||
/pronouns:
|
||||
get:
|
||||
tags:
|
||||
- Pronouns
|
||||
x-beta: true
|
||||
summary: Retrieve a list of pronouns
|
||||
description: Get a list of all available pronouns.
|
||||
responses:
|
||||
'200':
|
||||
description: A JSON array of pronouns
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/Pronoun'
|
||||
example:
|
||||
-
|
||||
canonicalName: he
|
||||
description: Normative “he/him”
|
||||
normative: true
|
||||
morphemes:
|
||||
pronoun_subject: he
|
||||
pronoun_object: him
|
||||
possessive_determiner: his
|
||||
possessive_pronoun: his
|
||||
reflexive: himself
|
||||
pronunciations: {}
|
||||
plural: false
|
||||
pluralHonorific: false
|
||||
aliases:
|
||||
- he/him
|
||||
history: ""
|
||||
pronounceable: true
|
||||
thirdForm: null
|
||||
smallForm: null
|
||||
sourcesInfo: null
|
||||
nullPronoun: false
|
||||
examples:
|
||||
- I think he is very nice.
|
||||
- I met him recently.
|
||||
- Is this his dog?
|
||||
- He told me that the house is his.
|
||||
- He said he would rather do it himself.
|
||||
- He is really beautiful.
|
||||
- He answered the phone.
|
||||
- He takes good care of his cat.
|
||||
- He did it all by himself.
|
||||
- He talks in his sleep.
|
||||
- He landed the plane safely.
|
||||
- He argues that…
|
||||
- Did you buy him his gift?
|
||||
- I asked him if I can borrow his pencil.
|
||||
- I talked to him yesterday.
|
||||
- Would you like to go to the movies with him?
|
||||
- Can you call him when his cat awakes?
|
||||
- His graduation starts soon.
|
||||
- My favorite color is purple, his is yellow.
|
||||
name: he/him
|
||||
'500':
|
||||
description: Internal server error
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
error:
|
||||
type: string
|
||||
example: Internal server error
|
||||
/pronouns/{pronoun}:
|
||||
get:
|
||||
x-beta: true
|
||||
tags:
|
||||
- Pronouns
|
||||
summary: Retrieve a specific pronoun set
|
||||
description: Get details of a specific pronoun set by its canonical name.
|
||||
parameters:
|
||||
- name: pronoun
|
||||
in: path
|
||||
required: true
|
||||
description: The canonical name of the pronoun set (e.g., "they/them").
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: A JSON object representing the pronoun set
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Pronoun'
|
||||
example:
|
||||
canonicalName: they/them
|
||||
description: Normative “they/them”
|
||||
normative: true
|
||||
morphemes:
|
||||
pronoun_subject: they
|
||||
pronoun_object: them
|
||||
possessive_determiner: their
|
||||
possessive_pronoun: theirs
|
||||
reflexive: themself
|
||||
pronunciations: {}
|
||||
plural: true
|
||||
pluralHonorific: false
|
||||
aliases:
|
||||
- they/them
|
||||
- singular they
|
||||
history: ""
|
||||
pronounceable: true
|
||||
thirdForm: null
|
||||
smallForm: null
|
||||
sourcesInfo: null
|
||||
nullPronoun: false
|
||||
examples:
|
||||
- I think they are very nice.
|
||||
- I met them recently.
|
||||
- Is this their dog?
|
||||
- They told me that the house is theirs.
|
||||
- They said they would rather do it themself.
|
||||
- They are really beautiful.
|
||||
- They answered the phone.
|
||||
- They take good care of their cat.
|
||||
- They did it all by themself.
|
||||
- They talk in their sleep.
|
||||
- They landed the plane safely.
|
||||
- They argue that…
|
||||
- Did you buy them their gift?
|
||||
- I asked them if I can borrow their pencil.
|
||||
- I talked to them yesterday.
|
||||
- Would you like to go to the movies with them?
|
||||
- Can you call them when their cat awakes?
|
||||
- Their graduation starts soon.
|
||||
- My favorite color is purple, theirs is yellow.
|
||||
name: they/them
|
||||
'404':
|
||||
description: Pronoun set not found
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
error:
|
||||
type: string
|
||||
example: Pronoun set not found
|
||||
'500':
|
||||
description: Internal server error
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
error:
|
||||
type: string
|
||||
example: Internal server error
|
||||
/banner/{pronoun}.png:
|
||||
get:
|
||||
x-beta: true
|
||||
tags:
|
||||
- Pronouns
|
||||
summary: Retrieve a pronoun badge image
|
||||
description: Get a PNG image badge for a specific pronoun set by its canonical name.
|
||||
parameters:
|
||||
- name: pronoun
|
||||
in: path
|
||||
required: true
|
||||
description: The canonical name of the pronoun set (e.g., "they/them").
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: A PNG image badge representing the pronoun set
|
||||
content:
|
||||
image/png:
|
||||
schema:
|
||||
contentMediaType: image/png
|
||||
'404':
|
||||
description: Pronoun set not found
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
error:
|
||||
type: string
|
||||
example: Pronoun set not found
|
||||
'500':
|
||||
description: Internal server error
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
error:
|
||||
type: string
|
||||
example: Internal server error
|
||||
components:
|
||||
securitySchemes:
|
||||
APIKeyHeader:
|
||||
type: http
|
||||
scheme: bearer
|
||||
bearerFormat: JWT
|
||||
description: |-
|
||||
The API key used to authenticate requests.
|
||||
|
||||
> info
|
||||
> Note: This key is only required for requests that access private or user-specific data.
|
||||
schemas:
|
||||
MorphemeData:
|
||||
type: object
|
||||
title: Morpheme Data
|
||||
required:
|
||||
- pronoun_subject
|
||||
- pronoun_object
|
||||
- possessive_determiner
|
||||
- possessive_pronoun
|
||||
- reflexive
|
||||
properties:
|
||||
pronoun_subject:
|
||||
type: string
|
||||
description: Subject pronoun (e.g., "they").
|
||||
example: they
|
||||
pronoun_object:
|
||||
type: string
|
||||
description: Object pronoun (e.g., "them").
|
||||
example: them
|
||||
possessive_determiner:
|
||||
type: string
|
||||
description: Possessive determiner (e.g., "their").
|
||||
example: their
|
||||
possessive_pronoun:
|
||||
type: string
|
||||
description: Possessive pronoun (e.g., "theirs").
|
||||
example: theirs
|
||||
reflexive:
|
||||
type: string
|
||||
description: Reflexive pronoun (e.g., "themself").
|
||||
example: themself
|
||||
Pronoun:
|
||||
type: object
|
||||
title: Pronoun Data
|
||||
required:
|
||||
- canonicalName
|
||||
- description
|
||||
- normative
|
||||
- morphemes
|
||||
- pronunciations
|
||||
- plural
|
||||
- pluralHonorific
|
||||
- pronounceable
|
||||
- nullPronoun
|
||||
- name
|
||||
properties:
|
||||
canonicalName:
|
||||
type: string
|
||||
description: The canonical name of the pronoun set (e.g., "they/them").
|
||||
example: they/them
|
||||
description:
|
||||
type: string
|
||||
description: A brief description of the pronoun set.
|
||||
normative:
|
||||
type: boolean
|
||||
description: Indicates if the pronoun set is considered normative.
|
||||
example: true
|
||||
morphemes:
|
||||
type: object
|
||||
description: The morpheme data for the pronoun set.
|
||||
$ref: '#/components/schemas/MorphemeData'
|
||||
pronunciations:
|
||||
type: object
|
||||
description: Pronunciation guides for the pronoun set.
|
||||
plural:
|
||||
type: boolean
|
||||
description: Indicates if the pronoun set is plural.
|
||||
example: true
|
||||
pluralHonorific:
|
||||
type: boolean
|
||||
description: Indicates if the pronoun set is a plural honorific.
|
||||
example: false
|
||||
aliases:
|
||||
type: array
|
||||
description: Alternative names or aliases for the pronoun set.
|
||||
items:
|
||||
type: string
|
||||
history:
|
||||
type: string
|
||||
description: Historical context or notes about the pronoun set.
|
||||
pronounceable:
|
||||
type: boolean
|
||||
description: Indicates if the pronoun set is easily pronounceable.
|
||||
example: true
|
||||
thirdForm:
|
||||
type: string
|
||||
description: A third form of the pronoun set, if applicable.
|
||||
smallForm:
|
||||
type: string
|
||||
description: A smaller or abbreviated form of the pronoun set, if applicable.
|
||||
sourcesInfo:
|
||||
type: string
|
||||
description: Information about the sources of the pronoun set.
|
||||
nullPronoun:
|
||||
type: boolean
|
||||
description: Indicates if the pronoun set is a null pronoun.
|
||||
example: false
|
||||
examples:
|
||||
type: array
|
||||
description: Example sentences or phrases using the pronoun set.
|
||||
items:
|
||||
type: string
|
||||
name:
|
||||
type: string
|
||||
description: A human-readable name for the pronoun set.
|
||||
example: They/Them
|
||||
Item:
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
type: integer
|
||||
example: 1
|
||||
name:
|
||||
type: string
|
||||
example: Item 1
|
BIN
docs/docs.plist
Normal file
BIN
docs/docs.plist
Normal file
Binary file not shown.
33
docs/en.yaml
Normal file
33
docs/en.yaml
Normal file
@ -0,0 +1,33 @@
|
||||
openapi: 3.1.1
|
||||
info:
|
||||
version: 1.0.0
|
||||
title: Pronouns.Page API
|
||||
description: |-
|
||||
The Pronouns.Page API allows you to retrieve and manage pronoun data for users.
|
||||
termsOfService: https://en.pronouns.page/terms/
|
||||
contact:
|
||||
name: Support
|
||||
url: https://en.pronouns.page/contact/
|
||||
email: contact@pronouns.page
|
||||
license:
|
||||
name: Opinionated Queer License (OQL) v1.1
|
||||
url: https://oql.avris.it/license/v1.1
|
||||
servers:
|
||||
- url: https://pronouns.page/api
|
||||
description: Main (production) server
|
||||
- url: https://{region}.pronouns.page/api
|
||||
description: Language-specific server
|
||||
variables:
|
||||
region:
|
||||
default: en
|
||||
enum:
|
||||
- en
|
||||
- es
|
||||
- fr
|
||||
- de
|
||||
- it
|
||||
- pt
|
||||
description: The language/region of the server to use.
|
||||
paths:
|
||||
/pronouns:
|
||||
$ref: './base.yaml#/paths/pronouns';
|
Loading…
x
Reference in New Issue
Block a user