mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-05-07 12:35:50 +02:00
feat(openapi): refactor into indiv. files to match API & tpl routing
This commit is contained in:
19
public/openapi/api/topic/pagination/topic_id.yaml
Normal file
19
public/openapi/api/topic/pagination/topic_id.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
get:
|
||||
tags:
|
||||
- topics
|
||||
summary: Get topic pagination data
|
||||
description: This route retrieves pagination data for a given topic. It is used mainly client-side, as it return data necessary to update a pagination block client-side.
|
||||
parameters:
|
||||
- name: topic_id
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
example: 1
|
||||
responses:
|
||||
"200":
|
||||
description: ""
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: ../../../components/schemas/Pagination.yaml#/Pagination
|
||||
18
public/openapi/api/topic/teaser/topic_id.yaml
Normal file
18
public/openapi/api/topic/teaser/topic_id.yaml
Normal file
@@ -0,0 +1,18 @@
|
||||
get:
|
||||
tags:
|
||||
- topics
|
||||
summary: Get a topic's teaser post
|
||||
parameters:
|
||||
- name: topic_id
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
example: 1
|
||||
responses:
|
||||
"200":
|
||||
description: "A JSON object containing the teaser post for a topic"
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: ../../../components/schemas/PostsObject.yaml#/PostsObject
|
||||
35
public/openapi/api/topic/thumb/upload.yaml
Normal file
35
public/openapi/api/topic/thumb/upload.yaml
Normal file
@@ -0,0 +1,35 @@
|
||||
post:
|
||||
tags:
|
||||
- topics
|
||||
summary: Upload topic thumb
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
multipart/form-data:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
files:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
format: binary
|
||||
required:
|
||||
- files
|
||||
responses:
|
||||
"200":
|
||||
description: "Image uploaded"
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
description: The filename
|
||||
url:
|
||||
type: string
|
||||
description: URL of the uploaded image for use client-side
|
||||
path:
|
||||
type: string
|
||||
description: Path to the file in the local file system
|
||||
62
public/openapi/api/topic/tid/id.yaml
Normal file
62
public/openapi/api/topic/tid/id.yaml
Normal file
@@ -0,0 +1,62 @@
|
||||
get:
|
||||
tags:
|
||||
- shorthand
|
||||
summary: Get topic data
|
||||
parameters:
|
||||
- name: id
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
example: 1
|
||||
responses:
|
||||
"200":
|
||||
description: "A JSON object containing topic data"
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
tid:
|
||||
type: number
|
||||
uid:
|
||||
type: number
|
||||
cid:
|
||||
type: number
|
||||
mainPid:
|
||||
type: number
|
||||
teaserPid:
|
||||
type: number
|
||||
nullable: true
|
||||
title:
|
||||
type: string
|
||||
slug:
|
||||
type: string
|
||||
timestamp:
|
||||
type: number
|
||||
lastposttime:
|
||||
type: number
|
||||
postcount:
|
||||
type: number
|
||||
viewcount:
|
||||
type: number
|
||||
deleted:
|
||||
type: number
|
||||
locked:
|
||||
type: number
|
||||
pinned:
|
||||
type: number
|
||||
upvotes:
|
||||
type: number
|
||||
downvotes:
|
||||
type: number
|
||||
deleterUid:
|
||||
type: number
|
||||
titleRaw:
|
||||
type: string
|
||||
timestampISO:
|
||||
type: string
|
||||
lastposttimeISO:
|
||||
type: string
|
||||
votes:
|
||||
type: number
|
||||
414
public/openapi/api/topic/topic_id/slug/post_index.yaml
Normal file
414
public/openapi/api/topic/topic_id/slug/post_index.yaml
Normal file
@@ -0,0 +1,414 @@
|
||||
get:
|
||||
tags:
|
||||
- topics
|
||||
summary: Get topic data
|
||||
parameters:
|
||||
- name: topic_id
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
example: 1
|
||||
- name: slug
|
||||
description: This parameter is not required. If omitted, the request will be automatically redirected with the proper topic slug.
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
example: test-topic
|
||||
- name: post_index
|
||||
description: This parameter is not required. If omitted, the request will presume that you want the first post. The API response is largely unaffected by this parameter, it is used client-side (to send the user to the requested post), and changes the meta/link tags in the server-side generated HTML.
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
example: 1
|
||||
responses:
|
||||
"200":
|
||||
description: ""
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
allOf:
|
||||
- type: object
|
||||
properties:
|
||||
tid:
|
||||
type: number
|
||||
description: A topic identifier
|
||||
uid:
|
||||
type: number
|
||||
description: A user identifier
|
||||
cid:
|
||||
type: number
|
||||
description: A category identifier
|
||||
title:
|
||||
type: string
|
||||
slug:
|
||||
type: string
|
||||
timestamp:
|
||||
type: number
|
||||
lastposttime:
|
||||
type: number
|
||||
postcount:
|
||||
type: number
|
||||
viewcount:
|
||||
type: number
|
||||
posterCount:
|
||||
type: number
|
||||
description: The number of unique users who made a post in this topic
|
||||
mainPid:
|
||||
type: number
|
||||
description: The post id of the first post in this topic (also called the
|
||||
"original post")
|
||||
teaserPid:
|
||||
type: number
|
||||
nullable: true
|
||||
upvotes:
|
||||
type: number
|
||||
downvotes:
|
||||
type: number
|
||||
deleted:
|
||||
type: number
|
||||
locked:
|
||||
type: number
|
||||
pinned:
|
||||
type: number
|
||||
description: Whether or not this particular topic is pinned to the top of the
|
||||
category
|
||||
deleterUid:
|
||||
type: number
|
||||
titleRaw:
|
||||
type: string
|
||||
timestampISO:
|
||||
type: string
|
||||
description: An ISO 8601 formatted date string (complementing `timestamp`)
|
||||
lastposttimeISO:
|
||||
type: string
|
||||
votes:
|
||||
type: number
|
||||
tags:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
value:
|
||||
type: string
|
||||
valueEscaped:
|
||||
type: string
|
||||
color:
|
||||
type: string
|
||||
bgColor:
|
||||
type: string
|
||||
score:
|
||||
type: number
|
||||
posts:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
pid:
|
||||
type: number
|
||||
uid:
|
||||
type: number
|
||||
description: A user identifier
|
||||
tid:
|
||||
type: number
|
||||
description: A topic identifier
|
||||
content:
|
||||
type: string
|
||||
timestamp:
|
||||
type: number
|
||||
votes:
|
||||
type: number
|
||||
deleted:
|
||||
type: number
|
||||
upvotes:
|
||||
type: number
|
||||
downvotes:
|
||||
type: number
|
||||
bookmarks:
|
||||
type: number
|
||||
deleterUid:
|
||||
type: number
|
||||
edited:
|
||||
type: number
|
||||
timestampISO:
|
||||
type: string
|
||||
description: An ISO 8601 formatted date string (complementing `timestamp`)
|
||||
editedISO:
|
||||
type: string
|
||||
index:
|
||||
type: number
|
||||
user:
|
||||
type: object
|
||||
properties:
|
||||
uid:
|
||||
type: number
|
||||
description: A user identifier
|
||||
username:
|
||||
type: string
|
||||
description: A friendly name for a given user account
|
||||
userslug:
|
||||
type: string
|
||||
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||
removed, etc.)
|
||||
reputation:
|
||||
type: number
|
||||
postcount:
|
||||
type: number
|
||||
topiccount:
|
||||
type: number
|
||||
picture:
|
||||
type: string
|
||||
nullable: true
|
||||
signature:
|
||||
type: string
|
||||
banned:
|
||||
type: number
|
||||
banned:expire:
|
||||
type: number
|
||||
status:
|
||||
type: string
|
||||
lastonline:
|
||||
type: number
|
||||
groupTitle:
|
||||
nullable: true
|
||||
type: string
|
||||
groupTitleArray:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
icon:text:
|
||||
type: string
|
||||
description: A single-letter representation of a username. This is used in the
|
||||
auto-generated icon given to users without
|
||||
an avatar
|
||||
icon:bgColor:
|
||||
type: string
|
||||
description: A six-character hexadecimal colour code assigned to the user. This
|
||||
value is used in conjunction with
|
||||
`icon:text` for the user's auto-generated
|
||||
icon
|
||||
example: "#f44336"
|
||||
lastonlineISO:
|
||||
type: string
|
||||
banned_until:
|
||||
type: number
|
||||
banned_until_readable:
|
||||
type: string
|
||||
selectedGroups:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
slug:
|
||||
type: string
|
||||
labelColor:
|
||||
type: string
|
||||
textColor:
|
||||
type: string
|
||||
icon:
|
||||
type: string
|
||||
userTitle:
|
||||
type: string
|
||||
custom_profile_info:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
content:
|
||||
type: string
|
||||
description: HTML that is injected into `topic.tpl` of themes that support custom profile info
|
||||
editor:
|
||||
nullable: true
|
||||
bookmarked:
|
||||
type: boolean
|
||||
upvoted:
|
||||
type: boolean
|
||||
downvoted:
|
||||
type: boolean
|
||||
replies:
|
||||
type: object
|
||||
properties:
|
||||
hasMore:
|
||||
type: boolean
|
||||
users:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
username:
|
||||
type: string
|
||||
description: A friendly name for a given user account
|
||||
userslug:
|
||||
type: string
|
||||
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||
removed, etc.)
|
||||
picture:
|
||||
type: string
|
||||
uid:
|
||||
type: number
|
||||
description: A user identifier
|
||||
icon:text:
|
||||
type: string
|
||||
description: A single-letter representation of a username. This is used in the
|
||||
auto-generated icon given to users without
|
||||
an avatar
|
||||
icon:bgColor:
|
||||
type: string
|
||||
description: A six-character hexadecimal colour code assigned to the user. This
|
||||
value is used in conjunction with
|
||||
`icon:text` for the user's auto-generated
|
||||
icon
|
||||
example: "#f44336"
|
||||
administrator:
|
||||
type: boolean
|
||||
text:
|
||||
type: string
|
||||
count:
|
||||
type: number
|
||||
selfPost:
|
||||
type: boolean
|
||||
display_edit_tools:
|
||||
type: boolean
|
||||
display_delete_tools:
|
||||
type: boolean
|
||||
display_moderator_tools:
|
||||
type: boolean
|
||||
display_move_tools:
|
||||
type: boolean
|
||||
display_post_menu:
|
||||
type: boolean
|
||||
flagId:
|
||||
type: number
|
||||
description: The flag identifier, if this particular post has been flagged before
|
||||
category:
|
||||
$ref: ../../../../components/schemas/CategoryObject.yaml#/CategoryObject
|
||||
tagWhitelist:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
minTags:
|
||||
type: number
|
||||
maxTags:
|
||||
type: number
|
||||
thread_tools:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
class:
|
||||
type: string
|
||||
title:
|
||||
type: string
|
||||
icon:
|
||||
type: string
|
||||
isFollowing:
|
||||
type: boolean
|
||||
isNotFollowing:
|
||||
type: boolean
|
||||
isIgnoring:
|
||||
type: boolean
|
||||
bookmark:
|
||||
nullable: true
|
||||
postSharing:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
name:
|
||||
type: string
|
||||
class:
|
||||
type: string
|
||||
activated:
|
||||
type: boolean
|
||||
deleter:
|
||||
nullable: true
|
||||
merger:
|
||||
nullable: true
|
||||
related:
|
||||
type: array
|
||||
items:
|
||||
$ref: ../../../../components/schemas/TopicObject.yaml#/TopicObject
|
||||
unreplied:
|
||||
type: boolean
|
||||
icons:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
description: HTML that is rendered by the theme
|
||||
privileges:
|
||||
type: object
|
||||
properties:
|
||||
topics:reply:
|
||||
type: boolean
|
||||
topics:read:
|
||||
type: boolean
|
||||
topics:tag:
|
||||
type: boolean
|
||||
topics:delete:
|
||||
type: boolean
|
||||
posts:edit:
|
||||
type: boolean
|
||||
posts:history:
|
||||
type: boolean
|
||||
posts:delete:
|
||||
type: boolean
|
||||
posts:view_deleted:
|
||||
type: boolean
|
||||
read:
|
||||
type: boolean
|
||||
purge:
|
||||
type: boolean
|
||||
view_thread_tools:
|
||||
type: boolean
|
||||
editable:
|
||||
type: boolean
|
||||
deletable:
|
||||
type: boolean
|
||||
view_deleted:
|
||||
type: boolean
|
||||
isAdminOrMod:
|
||||
type: boolean
|
||||
disabled:
|
||||
type: number
|
||||
tid:
|
||||
type: string
|
||||
uid:
|
||||
type: number
|
||||
description: A user identifier
|
||||
topicStaleDays:
|
||||
type: number
|
||||
reputation:disabled:
|
||||
type: number
|
||||
downvote:disabled:
|
||||
type: number
|
||||
feeds:disableRSS:
|
||||
type: number
|
||||
bookmarkThreshold:
|
||||
type: number
|
||||
necroThreshold:
|
||||
type: number
|
||||
postEditDuration:
|
||||
type: number
|
||||
postDeleteDuration:
|
||||
type: number
|
||||
scrollToMyPost:
|
||||
type: boolean
|
||||
allowMultipleBadges:
|
||||
type: boolean
|
||||
privateUploads:
|
||||
type: boolean
|
||||
rssFeedUrl:
|
||||
type: string
|
||||
postIndex:
|
||||
type: number
|
||||
loggedInUser:
|
||||
$ref: ../../../../components/schemas/UserObject.yaml#/UserObject
|
||||
- $ref: ../../../../components/schemas/Pagination.yaml#/Pagination
|
||||
- $ref: ../../../../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||
- $ref: ../../../../components/schemas/CommonProps.yaml#/CommonProps
|
||||
Reference in New Issue
Block a user