mirror of https://gitlab.com/tildes/tildes.git
3 changed files with 288 additions and 0 deletions
@ -0,0 +1,282 @@ |
|||||
|
openapi: 3.0.0 |
||||
|
info: |
||||
|
title: Tildes Beta API Schema |
||||
|
version: Beta |
||||
|
description: | |
||||
|
This is the OpenAPI schema for the Tildes Beta API. |
||||
|
The beta API is subject to change and may not be fully stable. |
||||
|
Future updates WILL include breaking changes. |
||||
|
Use at your own risk. |
||||
|
servers: |
||||
|
- url: /api/beta |
||||
|
paths: |
||||
|
/topics: |
||||
|
get: |
||||
|
summary: Get a list of topics |
||||
|
parameters: |
||||
|
- $ref: '#/components/parameters/paginationLimit' |
||||
|
- $ref: '#/components/parameters/paginationBefore' |
||||
|
- $ref: '#/components/parameters/paginationAfter' |
||||
|
- in: query |
||||
|
name: period |
||||
|
schema: |
||||
|
type: string |
||||
|
default: "all" |
||||
|
required: false |
||||
|
description: The time period for which to retrieve topics. For example 4h" or "2d". |
||||
|
- in: query |
||||
|
name: tag |
||||
|
schema: |
||||
|
type: string |
||||
|
required: false |
||||
|
description: The tag to filter topics by. If not specified, topics are not filtered on their tags. |
||||
|
- in: query |
||||
|
name: order |
||||
|
schema: |
||||
|
type: string |
||||
|
default: "activity" |
||||
|
enum: ["activity", "votes", "comments", "new", "all_activity"] |
||||
|
required: false |
||||
|
description: The sort order for the topics. Defaults to "activity". |
||||
|
responses: |
||||
|
"200": |
||||
|
description: A list of topics |
||||
|
content: |
||||
|
application/json: |
||||
|
schema: |
||||
|
type: object |
||||
|
required: |
||||
|
- topics |
||||
|
- pagination |
||||
|
properties: |
||||
|
topics: |
||||
|
type: array |
||||
|
items: |
||||
|
$ref: '#/components/schemas/Topic' |
||||
|
pagination: |
||||
|
$ref: '#/components/schemas/Pagination' |
||||
|
"400": |
||||
|
$ref: "#/components/responses/ValidationError" |
||||
|
|
||||
|
|
||||
|
components: |
||||
|
parameters: |
||||
|
paginationBefore: |
||||
|
in: query |
||||
|
name: before |
||||
|
schema: |
||||
|
type: string |
||||
|
required: false |
||||
|
description: The ID36 of the first item from the previous page, to get items before it. You can only specify either `before` or `after`, not both. |
||||
|
|
||||
|
paginationAfter: |
||||
|
in: query |
||||
|
name: after |
||||
|
schema: |
||||
|
type: string |
||||
|
required: false |
||||
|
description: The ID36 of the last item from the previous page, to get items after it. You can only specify either `before` or `after`, not both. |
||||
|
|
||||
|
paginationLimit: |
||||
|
in: query |
||||
|
name: limit |
||||
|
schema: |
||||
|
type: integer |
||||
|
minimum: 1 |
||||
|
maximum: 100 |
||||
|
default: 50 |
||||
|
required: false |
||||
|
description: The maximum number of items to return. The `limit` is itself limited to prevent abuse. |
||||
|
|
||||
|
responses: |
||||
|
ValidationError: |
||||
|
description: OpenAPI request/response validation failed |
||||
|
content: |
||||
|
application/json: |
||||
|
schema: |
||||
|
type: array |
||||
|
items: |
||||
|
$ref: "#/components/schemas/Error" |
||||
|
|
||||
|
schemas: |
||||
|
Topic: |
||||
|
type: object |
||||
|
required: |
||||
|
- id |
||||
|
- title |
||||
|
- text_html |
||||
|
- url |
||||
|
- comments_url |
||||
|
- group |
||||
|
- content_metadata |
||||
|
- created_at |
||||
|
- posted_by_user |
||||
|
- vote_count |
||||
|
- comment_count |
||||
|
- new_comment_count |
||||
|
- voted |
||||
|
- bookmarked |
||||
|
- ignored |
||||
|
- official |
||||
|
- tags |
||||
|
properties: |
||||
|
id: |
||||
|
type: integer |
||||
|
title: |
||||
|
type: string |
||||
|
text_html: |
||||
|
type: string |
||||
|
nullable: true |
||||
|
url: |
||||
|
type: string |
||||
|
nullable: true |
||||
|
comments_url: |
||||
|
type: string |
||||
|
source_site_name: |
||||
|
type: string |
||||
|
nullable: true |
||||
|
source_site_icon: |
||||
|
type: string |
||||
|
nullable: true |
||||
|
group: |
||||
|
type: string |
||||
|
content_metadata: |
||||
|
type: array |
||||
|
items: |
||||
|
type: string |
||||
|
created_at: |
||||
|
type: string |
||||
|
posted_by_user: |
||||
|
type: string |
||||
|
vote_count: |
||||
|
type: integer |
||||
|
comment_count: |
||||
|
type: integer |
||||
|
new_comment_count: |
||||
|
type: integer |
||||
|
nullable: true |
||||
|
voted: |
||||
|
type: boolean |
||||
|
nullable: true |
||||
|
bookmarked: |
||||
|
type: boolean |
||||
|
nullable: true |
||||
|
ignored: |
||||
|
type: boolean |
||||
|
nullable: true |
||||
|
official: |
||||
|
type: boolean |
||||
|
tags: |
||||
|
type: array |
||||
|
items: |
||||
|
type: string |
||||
|
|
||||
|
Comment: |
||||
|
type: object |
||||
|
required: |
||||
|
- id |
||||
|
- depth |
||||
|
- author |
||||
|
- group |
||||
|
- topic_id |
||||
|
- voted |
||||
|
- can_vote |
||||
|
- can_label |
||||
|
- can_edit |
||||
|
- can_reply |
||||
|
- body_html |
||||
|
- votes |
||||
|
- posted_datetime |
||||
|
- posted_datetime_abbreviated |
||||
|
- deleted |
||||
|
- removed |
||||
|
- collapsed |
||||
|
- collapsed_individual |
||||
|
- exemplary |
||||
|
- exemplary_reasons |
||||
|
- user_labels |
||||
|
- is_new |
||||
|
- is_by_op |
||||
|
properties: |
||||
|
id: |
||||
|
type: string |
||||
|
depth: |
||||
|
type: integer |
||||
|
author: |
||||
|
type: string |
||||
|
parent_author: |
||||
|
type: string |
||||
|
nullable: true |
||||
|
group: |
||||
|
type: string |
||||
|
topic_id: |
||||
|
type: string |
||||
|
voted: |
||||
|
type: boolean |
||||
|
can_vote: |
||||
|
type: boolean |
||||
|
can_label: |
||||
|
type: boolean |
||||
|
can_edit: |
||||
|
type: boolean |
||||
|
can_reply: |
||||
|
type: boolean |
||||
|
body_html: |
||||
|
type: string |
||||
|
votes: |
||||
|
type: integer |
||||
|
posted_datetime: |
||||
|
type: string |
||||
|
posted_datetime_abbreviated: |
||||
|
type: string |
||||
|
deleted: |
||||
|
type: boolean |
||||
|
removed: |
||||
|
type: boolean |
||||
|
collapsed: |
||||
|
type: boolean |
||||
|
collapsed_individual: |
||||
|
type: boolean |
||||
|
exemplary: |
||||
|
type: boolean |
||||
|
exemplary_reasons: |
||||
|
type: array |
||||
|
items: |
||||
|
type: string |
||||
|
user_labels: |
||||
|
type: array |
||||
|
items: |
||||
|
type: string |
||||
|
is_new: |
||||
|
type: boolean |
||||
|
is_by_op: |
||||
|
type: boolean |
||||
|
|
||||
|
Pagination: |
||||
|
type: object |
||||
|
required: |
||||
|
- num_items |
||||
|
- next_link |
||||
|
- prev_link |
||||
|
properties: |
||||
|
num_items: |
||||
|
type: integer |
||||
|
description: The number of items returned in this response. |
||||
|
next_link: |
||||
|
type: string |
||||
|
nullable: true |
||||
|
prev_link: |
||||
|
type: string |
||||
|
nullable: true |
||||
|
|
||||
|
Error: |
||||
|
type: object |
||||
|
required: |
||||
|
- message |
||||
|
properties: |
||||
|
field: |
||||
|
type: string |
||||
|
message: |
||||
|
type: string |
||||
|
exception: |
||||
|
type: string |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue