fedimovies/docs/openapi.yaml

174 lines
4.7 KiB
YAML
Raw Normal View History

2021-12-03 15:29:50 +00:00
openapi: 3.0.1
info:
title: Mitra API
description: Mitra API spec
version: 1.0.0
paths:
2021-12-04 00:42:36 +00:00
/api/v1/statuses/{status_id}:
delete:
summary: Delete post
parameters:
- $ref: '#/components/parameters/status_id'
responses:
204:
description: Successful operation
content: {}
403:
description: Post does not belong to user
404:
description: Post not found
/api/v1/statuses/{status_id}/make_permanent:
2021-12-03 15:29:50 +00:00
post:
summary: Save post to IPFS
parameters:
- $ref: '#/components/parameters/status_id'
responses:
200:
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
403:
description: Post does not belong to user or is not public
2021-12-03 15:29:50 +00:00
404:
description: Post not found
418:
description: IPFS integration is not enabled
422:
description: Post already saved to IPFS
/api/v1/statuses/{status_id}/signature:
2021-12-03 15:29:50 +00:00
get:
summary: Sign post data with instance key
parameters:
- $ref: '#/components/parameters/status_id'
responses:
200:
description: Signature created
content:
application/json:
schema:
type: object
properties:
v:
type: integer
format: int64
example: 27
r:
type: string
example: '6f61670e67bf72...'
s:
type: string
example: '6a5cb313907cd3...'
403:
description: Post does not belong to user or is not public
2021-12-03 15:29:50 +00:00
404:
description: Post not found
418:
description: Ethereum integration is not enabled
422:
description: Post is not saved to IPFS
/api/v1/statuses/{status_id}/token_minted:
post:
summary: Register transaction that mints a token
parameters:
- $ref: '#/components/parameters/status_id'
requestBody:
content:
application/json:
schema:
properties:
transaction_id:
type: string
description: Transaction ID
responses:
200:
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
403:
description: Post does not belong to user or is not public
404:
description: Post not found
422:
description: Transaction already registered
/api/v1/timelines/tag/{hashtag}:
get:
summary: View public posts containing the given hashtag
parameters:
- name: hashtag
in: path
description: Hashtag name
required: true
schema:
type: string
- name: max_id
in: query
description: Return results older than this ID.
required: false
schema:
type: string
format: uuid
- name: limit
in: query
description: Maximum number of results to return.
required: false
schema:
type: integer
default: 20
responses:
200:
description: Successful operation
content:
application/json:
schema:
description: Post list
type: array
items:
$ref: '#/components/schemas/Status'
2021-12-03 15:29:50 +00:00
components:
parameters:
status_id:
name: status_id
in: path
description: Post ID
required: true
schema:
type: string
format: uuid
schemas:
Status:
type: object
properties:
id:
type: string
format: uuid
content:
description: HTML-encoded status content.
type: string
tags:
description: Hashtags used within the status content.
type: array
items:
$ref: '#/components/schemas/Tag'
2021-12-03 15:29:50 +00:00
ipfs_cid:
type: string
nullable: true
example: 'bafkr...'
token_tx_id:
type: string
nullable: true
example: '0x5fe80cdea7f...'
Tag:
type: object
properties:
name:
description: 'The value of the hashtag after the # sign.'
type: string
url:
description: A link to the hashtag on the instance.