You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
270 lines
7.5 KiB
YAML
270 lines
7.5 KiB
YAML
openapi: 3.0.0
|
|
info:
|
|
description: Standard, out-of-the-box read & write API for NodeBB v2.0+
|
|
version: "1.0.0"
|
|
title: Read/Write API
|
|
contact:
|
|
email: support@nodebb.org
|
|
license:
|
|
name: MIT
|
|
url: 'https://opensource.org/licenses/MIT'
|
|
tags:
|
|
# - name: admins
|
|
# description: Secured Admin-only calls
|
|
# - name: developers
|
|
# description: Operations available to regular developers
|
|
- name: users
|
|
description: Account related calls (create, modify, delete, etc.)
|
|
paths:
|
|
# /inventory:
|
|
# get:
|
|
# tags:
|
|
# - developers
|
|
# summary: searches inventory
|
|
# operationId: searchInventory
|
|
# description: |
|
|
# By passing in the appropriate options, you can search for
|
|
# available inventory in the system
|
|
# parameters:
|
|
# - in: query
|
|
# name: searchString
|
|
# description: pass an optional search string for looking up inventory
|
|
# required: false
|
|
# schema:
|
|
# type: string
|
|
# - in: query
|
|
# name: skip
|
|
# description: number of records to skip for pagination
|
|
# schema:
|
|
# type: integer
|
|
# format: int32
|
|
# minimum: 0
|
|
# - in: query
|
|
# name: limit
|
|
# description: maximum number of records to return
|
|
# schema:
|
|
# type: integer
|
|
# format: int32
|
|
# minimum: 0
|
|
# maximum: 50
|
|
# responses:
|
|
# '200':
|
|
# description: search results matching criteria
|
|
# content:
|
|
# application/json:
|
|
# schema:
|
|
# type: array
|
|
# items:
|
|
# $ref: '#/components/schemas/InventoryItem'
|
|
# '400':
|
|
# description: bad input parameter
|
|
# post:
|
|
# tags:
|
|
# - admins
|
|
# summary: adds an inventory item
|
|
# operationId: addInventory
|
|
# description: Adds an item to the system
|
|
# responses:
|
|
# '201':
|
|
# description: item created
|
|
# '400':
|
|
# description: 'invalid input, object invalid'
|
|
# '409':
|
|
# description: an existing item already exists
|
|
# requestBody:
|
|
# content:
|
|
# application/json:
|
|
# schema:
|
|
# $ref: '#/components/schemas/InventoryItem'
|
|
# description: Inventory item to add
|
|
/:
|
|
post:
|
|
tags:
|
|
- users
|
|
summary: creates a user account
|
|
operationId: createUser
|
|
description: This operation creates a new user account
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
username:
|
|
type: string
|
|
description: If the username is taken, a number will be appended
|
|
password:
|
|
type: string
|
|
email:
|
|
type: string
|
|
required:
|
|
- username
|
|
example:
|
|
username: Dragon Fruit
|
|
password: s3cre7password
|
|
email: dragonfruit@example.org
|
|
responses:
|
|
'200':
|
|
description: user successfully created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/User'
|
|
components:
|
|
schemas:
|
|
# InventoryItem:
|
|
# type: object
|
|
# required:
|
|
# - id
|
|
# - name
|
|
# - manufacturer
|
|
# - releaseDate
|
|
# properties:
|
|
# id:
|
|
# type: string
|
|
# format: uuid
|
|
# example: d290f1ee-6c54-4b01-90e6-d701748f0851
|
|
# name:
|
|
# type: string
|
|
# example: Widget Adapter
|
|
# releaseDate:
|
|
# type: string
|
|
# format: date-time
|
|
# example: '2016-08-29T09:12:33.001Z'
|
|
# manufacturer:
|
|
# $ref: '#/components/schemas/Manufacturer'
|
|
# Manufacturer:
|
|
# required:
|
|
# - name
|
|
# properties:
|
|
# name:
|
|
# type: string
|
|
# example: ACME Corporation
|
|
# homePage:
|
|
# type: string
|
|
# format: url
|
|
# example: 'https://www.acme-corp.com'
|
|
# phone:
|
|
# type: string
|
|
# example: 408-867-5309
|
|
# type: object
|
|
User:
|
|
properties:
|
|
uid:
|
|
type: number
|
|
example: 1
|
|
username:
|
|
type: string
|
|
example: Dragon Fruit
|
|
userslug:
|
|
type: string
|
|
example: dragon-fruit
|
|
email:
|
|
type: string
|
|
example: dragonfruit@example.org
|
|
email:confirmed:
|
|
type: number
|
|
example: 1
|
|
joindate:
|
|
type: number
|
|
example: 1585337827953
|
|
lastonline:
|
|
type: number
|
|
example: 1585337827953
|
|
picture:
|
|
type: string
|
|
example: https://images.unsplash.com/photo-1560070094-e1f2ddec4337?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=256&h=256&q=80
|
|
fullname:
|
|
type: string
|
|
example: Mr. Dragon Fruit Jr.
|
|
location:
|
|
type: string
|
|
example: Toronto, Canada
|
|
birthday:
|
|
type: string
|
|
description: A birthdate given in an ISO format parseable by the Date object
|
|
example: 03/27/2020
|
|
website:
|
|
type: string
|
|
example: https://example.org
|
|
aboutme:
|
|
type: string
|
|
example: |
|
|
This is a paragraph all about how my life got twist-turned upside-down
|
|
and I'd like to take a minute and sit right here,
|
|
to tell you all about how I because the administrator of NodeBB
|
|
signature:
|
|
type: string
|
|
example: |
|
|
This is an example signature
|
|
It can span multiple lines.
|
|
uploadedpicture:
|
|
type: string
|
|
example: /assets/profile/1-profileimg.png
|
|
description: In almost all cases, defer to "picture" instead. Use this if you need to specifically reference the picture uploaded to the forum.
|
|
profileviews:
|
|
type: number
|
|
example: 1000
|
|
reputation:
|
|
type: number
|
|
example: 100
|
|
postcount:
|
|
type: number
|
|
example: 1000
|
|
topiccount:
|
|
type: number
|
|
example: 50
|
|
lastposttime:
|
|
type: number
|
|
example: 1585337827953
|
|
banned:
|
|
type: number
|
|
example: 0
|
|
banned:expire:
|
|
type: number
|
|
example: 1585337827953
|
|
status:
|
|
type: string
|
|
example: online
|
|
flags:
|
|
type: number
|
|
example: 0
|
|
followercount:
|
|
type: number
|
|
example: 2
|
|
followingcount:
|
|
type: number
|
|
example: 5
|
|
cover:url:
|
|
type: string
|
|
example: /assets/profile/1-cover.png
|
|
cover:position:
|
|
type: string
|
|
example: 50.0301% 19.2464%
|
|
groupTitle:
|
|
type: string
|
|
example: "[\"administrators\",\"Staff\"]"
|
|
groupTitleArray:
|
|
type: array
|
|
example:
|
|
- administrators
|
|
- Staff
|
|
icon:text:
|
|
type: string
|
|
example: D
|
|
icon:bgColor:
|
|
type: string
|
|
example: "#9c27b0"
|
|
joindateISO:
|
|
type: string
|
|
example: 2020-03-27T20:30:36.590Z
|
|
lastonlineISO:
|
|
type: string
|
|
example: 2020-03-27T20:30:36.590Z
|
|
banned_until:
|
|
type: number
|
|
example: 0
|
|
banned_until_readable:
|
|
type: string
|
|
example: Not Banned |