drf-yasg/tests/reference.yaml

1257 lines
29 KiB
YAML

swagger: '2.0'
info:
title: Snippets API
description: "This is a demo project for the [drf-yasg](https://github.com/axnsan12/drf-yasg)\
\ Django Rest Framework library.\n\nThe `swagger-ui` view can be found [here](/cached/swagger).\
\ \nThe `ReDoc` view can be found [here](/cached/redoc). \nThe swagger YAML\
\ document can be found [here](/cached/swagger.yaml). \n\nYou can log in using\
\ the pre-existing `admin` user with password `passwordadmin`."
termsOfService: https://www.google.com/policies/terms/
contact:
email: contact@snippets.local
license:
name: BSD License
version: v1
host: test.local:8002
schemes:
- http
basePath: /
consumes:
- application/json
produces:
- application/json
securityDefinitions:
basic:
type: basic
security:
- basic: []
paths:
/articles/:
get:
operationId: articles_list
description: description from swagger_auto_schema via method_decorator
parameters:
- name: title
in: query
description: Filter the returned list by title
required: false
type: string
- name: ordering
in: query
description: Which field to use when ordering the results.
required: false
type: string
- name: limit
in: query
description: Number of results to return per page.
required: false
type: integer
- name: offset
in: query
description: The initial index from which to return the results.
required: false
type: integer
responses:
'200':
description: ''
schema:
required:
- count
- results
type: object
properties:
count:
type: integer
next:
type: string
format: uri
previous:
type: string
format: uri
results:
type: array
items:
$ref: '#/definitions/Article'
tags:
- articles
post:
operationId: articles_create
description: ArticleViewSet class docstring
parameters:
- name: data
in: body
required: true
schema:
$ref: '#/definitions/Article'
responses:
'201':
description: ''
schema:
$ref: '#/definitions/Article'
tags:
- articles
parameters: []
/articles/today/:
get:
operationId: articles_today
description: ArticleViewSet class docstring
parameters:
- name: title
in: query
description: Filter the returned list by title
required: false
type: string
- name: ordering
in: query
description: Which field to use when ordering the results.
required: false
type: string
responses:
'200':
description: ''
schema:
type: array
items:
$ref: '#/definitions/Article'
tags:
- articles
parameters: []
/articles/{slug}/:
get:
operationId: articles_read
description: retrieve class docstring
parameters: []
responses:
'200':
description: ''
schema:
$ref: '#/definitions/Article'
tags:
- articles
put:
operationId: articles_update
description: update method docstring
parameters:
- name: data
in: body
required: true
schema:
$ref: '#/definitions/Article'
responses:
'200':
description: ''
schema:
$ref: '#/definitions/Article'
tags:
- articles
patch:
operationId: articles_partial_update
description: partial_update description override
parameters:
- name: data
in: body
required: true
schema:
$ref: '#/definitions/Article'
responses:
'200':
description: ''
schema:
$ref: '#/definitions/Article'
'404':
description: slug not found
tags:
- articles
delete:
operationId: articles_delete
description: destroy method docstring
parameters: []
responses:
'204':
description: ''
tags:
- articles
parameters:
- name: slug
in: path
description: slug model help_text
required: true
type: string
format: slug
pattern: '[a-z0-9]+(?:-[a-z0-9]+)'
/articles/{slug}/image/:
get:
operationId: articles_image_read
description: image GET description override
parameters: []
responses:
'200':
description: ''
consumes:
- multipart/form-data
tags:
- articles
post:
operationId: articles_image_create
description: image method docstring
parameters:
- name: what_am_i_doing
in: formData
description: test
required: false
type: string
pattern: ^69$
default: '69'
- name: image_styles
in: formData
description: Parameter with Items
required: true
type: array
items:
type: string
enum:
- wide
- tall
- thumb
- social
- name: upload
in: formData
description: image serializer help_text
required: true
type: file
responses:
'201':
description: ''
consumes:
- multipart/form-data
tags:
- articles
parameters:
- name: slug
in: path
description: slug model help_text
required: true
type: string
format: slug
pattern: '[a-z0-9]+(?:-[a-z0-9]+)'
/plain/:
get:
operationId: plain_list
description: ''
parameters: []
responses:
'200':
description: ''
tags:
- plain
parameters: []
/snippets/:
get:
operationId: snippetsList
description: SnippetList classdoc
parameters: []
responses:
'200':
description: ''
schema:
type: array
items:
$ref: '#/definitions/Snippet'
tags:
- snippets
post:
operationId: snippetsCreate
description: post method docstring
parameters:
- name: data
in: body
required: true
schema:
$ref: '#/definitions/Snippet'
responses:
'201':
description: ''
schema:
$ref: '#/definitions/Snippet'
tags:
- snippets
parameters: []
/snippets/{id}/:
get:
operationId: snippetsRead
description: SnippetDetail classdoc
parameters: []
responses:
'200':
description: ''
schema:
$ref: '#/definitions/Snippet'
tags:
- snippets
put:
operationId: snippetsUpdate
description: put class docstring
parameters:
- name: data
in: body
required: true
schema:
$ref: '#/definitions/Snippet'
responses:
'200':
description: ''
schema:
$ref: '#/definitions/Snippet'
tags:
- snippets
patch:
operationId: snippetsPartialUpdate
description: patch method docstring
parameters:
- name: data
in: body
required: true
schema:
$ref: '#/definitions/Snippet'
responses:
'200':
description: ''
schema:
$ref: '#/definitions/Snippet'
tags:
- snippets
delete:
operationId: snippetsDelete
description: delete method docstring
parameters:
- name: id
in: path
description: path parameter override
required: true
type: integer
responses:
'204':
description: This should not crash
tags:
- snippets
parameters:
- name: id
in: path
description: A unique integer value identifying this snippet.
required: true
type: integer
/todo/:
get:
operationId: todo_list
description: ''
parameters: []
responses:
'200':
description: ''
schema:
type: array
items:
$ref: '#/definitions/Todo'
tags:
- todo
parameters: []
/todo/another/:
get:
operationId: todo_another_list
description: ''
parameters: []
responses:
'200':
description: ''
schema:
type: array
items:
$ref: '#/definitions/TodoAnother'
tags:
- todo
parameters: []
/todo/another/{id}/:
get:
operationId: todo_another_read
description: ''
parameters: []
responses:
'200':
description: ''
schema:
$ref: '#/definitions/TodoAnother'
tags:
- todo
parameters:
- name: id
in: path
description: A unique integer value identifying this todo another.
required: true
type: integer
/todo/yetanother/:
get:
operationId: todo_yetanother_list
description: ''
parameters: []
responses:
'200':
description: ''
schema:
type: array
items:
$ref: '#/definitions/TodoYetAnother'
tags:
- todo
parameters: []
/todo/yetanother/{id}/:
get:
operationId: todo_yetanother_read
description: ''
parameters: []
responses:
'200':
description: ''
schema:
$ref: '#/definitions/TodoYetAnother'
tags:
- todo
parameters:
- name: id
in: path
description: A unique integer value identifying this todo yet another.
required: true
type: integer
/todo/{id}/:
get:
operationId: todo_read
description: ''
parameters: []
responses:
'200':
description: ''
schema:
$ref: '#/definitions/Todo'
tags:
- todo
parameters:
- name: id
in: path
description: A unique integer value identifying this todo.
required: true
type: integer
/users/:
get:
operationId: users_list
description: UserList cbv classdoc
parameters:
- name: username
in: query
description: this field is generated from a query_serializer
required: false
type: string
- name: is_staff
in: query
description: this one too!
required: false
type: boolean
responses:
'200':
description: ''
schema:
type: array
items:
$ref: '#/definitions/UserSerializerrr'
tags:
- users
post:
operationId: users_create
description: apiview post description override
parameters:
- name: data
in: body
required: true
schema:
required:
- username
type: object
properties:
username:
type: string
responses:
'201':
description: ''
schema:
required:
- username
type: object
properties:
username:
type: string
tags:
- users
security: []
patch:
operationId: users_dummy
description: dummy operation
parameters: []
responses:
'200':
description: ''
tags:
- users
parameters: []
/users/{id}/:
get:
operationId: users_read
description: user_detail fbv docstring
parameters:
- name: test
in: query
description: test manual param
type: boolean
responses:
'200':
description: response description
schema:
$ref: '#/definitions/UserSerializerrr'
tags:
- users
put:
operationId: users_update
description: user_detail fbv docstring
parameters:
- name: data
in: body
required: true
schema:
$ref: '#/definitions/UserSerializerrr'
responses:
'200':
description: ''
schema:
$ref: '#/definitions/UserSerializerrr'
tags:
- users
parameters:
- name: id
in: path
required: true
type: string
definitions:
Article:
required:
- title
- body
type: object
properties:
title:
description: title model help_text
type: string
maxLength: 255
author:
description: The ID of the user that created this article; if none is provided,
defaults to the currently logged in user.
type: integer
default: 1
body:
description: body serializer help_text
type: string
maxLength: 5000
slug:
description: slug model help_text
type: string
format: slug
pattern: ^[-a-zA-Z0-9_]+$
maxLength: 50
date_created:
type: string
format: date-time
readOnly: true
date_modified:
type: string
format: date-time
readOnly: true
references:
description: this is a really bad example
type: object
additionalProperties:
description: but i needed to test these 2 fields somehow
type: string
format: uri
readOnly: true
uuid:
description: should articles have UUIDs?
type: string
format: uuid
readOnly: true
cover:
type: string
readOnly: true
format: uri
cover_name:
type: string
readOnly: true
Project:
required:
- projectName
- githubRepo
type: object
properties:
projectName:
title: Project name
description: Name of the project
type: string
githubRepo:
title: Github repo
description: Github repository of the project
type: string
Snippet:
required:
- code
- language
type: object
properties:
id:
title: Id
description: id serializer help text
type: integer
readOnly: true
owner:
title: Owner
description: The ID of the user that created this snippet; if none is provided,
defaults to the currently logged in user.
type: integer
default: 1
ownerAsString:
description: The ID of the user that created this snippet.
type: string
readOnly: true
title: Owner as string
title:
title: Title
type: string
maxLength: 100
code:
title: Code
type: string
linenos:
title: Linenos
type: boolean
language:
description: Sample help text for language
type: object
properties:
name:
title: Name
description: The name of the programming language
type: string
enum:
- abap
- abnf
- ada
- adl
- agda
- aheui
- ahk
- alloy
- ampl
- antlr
- antlr-as
- antlr-cpp
- antlr-csharp
- antlr-java
- antlr-objc
- antlr-perl
- antlr-python
- antlr-ruby
- apacheconf
- apl
- applescript
- arduino
- as
- as3
- aspectj
- aspx-cs
- aspx-vb
- asy
- at
- autoit
- awk
- basemake
- bash
- bat
- bbcode
- bc
- befunge
- bib
- blitzbasic
- blitzmax
- bnf
- boo
- boogie
- brainfuck
- bro
- bst
- bugs
- c
- c-objdump
- ca65
- cadl
- camkes
- capdl
- capnp
- cbmbas
- ceylon
- cfc
- cfengine3
- cfm
- cfs
- chai
- chapel
- cheetah
- cirru
- clay
- clean
- clojure
- clojurescript
- cmake
- cobol
- cobolfree
- coffee-script
- common-lisp
- componentpascal
- console
- control
- coq
- cpp
- cpp-objdump
- cpsa
- cr
- crmsh
- croc
- cryptol
- csharp
- csound
- csound-document
- csound-score
- css
- css+django
- css+erb
- css+genshitext
- css+lasso
- css+mako
- css+mozpreproc
- css+myghty
- css+php
- css+smarty
- cucumber
- cuda
- cypher
- cython
- d
- d-objdump
- dart
- delphi
- dg
- diff
- django
- docker
- doscon
- dpatch
- dtd
- duel
- dylan
- dylan-console
- dylan-lid
- earl-grey
- easytrieve
- ebnf
- ec
- ecl
- eiffel
- elixir
- elm
- emacs
- erb
- erl
- erlang
- evoque
- extempore
- ezhil
- factor
- fan
- fancy
- felix
- fish
- flatline
- forth
- fortran
- fortranfixed
- foxpro
- fsharp
- gap
- gas
- genshi
- genshitext
- glsl
- gnuplot
- go
- golo
- gooddata-cl
- gosu
- groff
- groovy
- gst
- haml
- handlebars
- haskell
- haxeml
- hexdump
- hsail
- html
- html+cheetah
- html+django
- html+evoque
- html+genshi
- html+handlebars
- html+lasso
- html+mako
- html+myghty
- html+ng2
- html+php
- html+smarty
- html+twig
- html+velocity
- http
- hx
- hybris
- hylang
- i6t
- idl
- idris
- iex
- igor
- inform6
- inform7
- ini
- io
- ioke
- irc
- isabelle
- j
- jags
- jasmin
- java
- javascript+mozpreproc
- jcl
- jlcon
- js
- js+cheetah
- js+django
- js+erb
- js+genshitext
- js+lasso
- js+mako
- js+myghty
- js+php
- js+smarty
- jsgf
- json
- json-object
- jsonld
- jsp
- julia
- juttle
- kal
- kconfig
- koka
- kotlin
- lagda
- lasso
- lcry
- lean
- less
- lhs
- lidr
- lighty
- limbo
- liquid
- live-script
- llvm
- logos
- logtalk
- lsl
- lua
- make
- mako
- maql
- mask
- mason
- mathematica
- matlab
- matlabsession
- md
- minid
- modelica
- modula2
- monkey
- monte
- moocode
- moon
- mozhashpreproc
- mozpercentpreproc
- mql
- mscgen
- mupad
- mxml
- myghty
- mysql
- nasm
- ncl
- nemerle
- nesc
- newlisp
- newspeak
- ng2
- nginx
- nim
- nit
- nixos
- nsis
- numpy
- nusmv
- objdump
- objdump-nasm
- objective-c
- objective-c++
- objective-j
- ocaml
- octave
- odin
- ooc
- opa
- openedge
- pacmanconf
- pan
- parasail
- pawn
- perl
- perl6
- php
- pig
- pike
- pkgconfig
- plpgsql
- postgresql
- postscript
- pot
- pov
- powershell
- praat
- prolog
- properties
- protobuf
- ps1con
- psql
- pug
- puppet
- py3tb
- pycon
- pypylog
- pytb
- python
- python3
- qbasic
- qml
- qvto
- racket
- ragel
- ragel-c
- ragel-cpp
- ragel-d
- ragel-em
- ragel-java
- ragel-objc
- ragel-ruby
- raw
- rb
- rbcon
- rconsole
- rd
- rebol
- red
- redcode
- registry
- resource
- rexx
- rhtml
- rnc
- roboconf-graph
- roboconf-instances
- robotframework
- rql
- rsl
- rst
- rts
- rust
- sas
- sass
- sc
- scala
- scaml
- scheme
- scilab
- scss
- shen
- silver
- slim
- smali
- smalltalk
- smarty
- sml
- snobol
- snowball
- sourceslist
- sp
- sparql
- spec
- splus
- sql
- sqlite3
- squidconf
- ssp
- stan
- stata
- swift
- swig
- systemverilog
- tads3
- tap
- tasm
- tcl
- tcsh
- tcshcon
- tea
- termcap
- terminfo
- terraform
- tex
- text
- thrift
- todotxt
- trac-wiki
- treetop
- ts
- tsql
- turtle
- twig
- typoscript
- typoscriptcssdata
- typoscripthtmldata
- urbiscript
- vala
- vb.net
- vcl
- vclsnippets
- vctreestatus
- velocity
- verilog
- vgl
- vhdl
- vim
- wdiff
- whiley
- x10
- xml
- xml+cheetah
- xml+django
- xml+erb
- xml+evoque
- xml+lasso
- xml+mako
- xml+myghty
- xml+php
- xml+smarty
- xml+velocity
- xquery
- xslt
- xtend
- xul+mozpreproc
- yaml
- yaml+jinja
- zephir
default: python
styles:
type: array
items:
type: string
enum:
- abap
- algol
- algol_nu
- arduino
- autumn
- borland
- bw
- colorful
- default
- emacs
- friendly
- fruity
- igor
- lovelace
- manni
- monokai
- murphy
- native
- paraiso-dark
- paraiso-light
- pastie
- perldoc
- rainbow_dash
- rrt
- tango
- trac
- vim
- vs
- xcode
default:
- friendly
lines:
type: array
items:
type: integer
exampleProjects:
type: array
items:
$ref: '#/definitions/Project'
readOnly: true
difficultyFactor:
title: Difficulty factor
description: this is here just to test FloatField
type: number
readOnly: true
default: 6.9
rateAsString:
title: Rate as string
type: string
format: decimal
default: '0.000'
rate:
title: Rate
type: number
format: decimal
default: 0.0
minimum: 0.0
Todo:
required:
- title
type: object
properties:
title:
title: Title
type: string
maxLength: 50
TodoAnother:
required:
- title
- todo
type: object
properties:
title:
title: Title
type: string
maxLength: 50
todo:
$ref: '#/definitions/Todo'
TodoYetAnother:
required:
- title
type: object
properties:
title:
title: Title
type: string
maxLength: 50
todo:
required:
- title
type: object
properties:
id:
title: ID
type: integer
readOnly: true
title:
title: Title
type: string
maxLength: 50
todo:
required:
- title
type: object
properties:
id:
title: ID
type: integer
readOnly: true
title:
title: Title
type: string
maxLength: 50
readOnly: true
readOnly: true
UserSerializerrr:
required:
- username
- articles
- snippets
type: object
properties:
id:
title: ID
type: integer
readOnly: true
username:
title: Username
description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
only.
type: string
pattern: ^[\w.@+-]+$
maxLength: 150
email:
title: Email address
type: string
format: email
maxLength: 254
articles:
type: array
items:
type: integer
uniqueItems: true
snippets:
type: array
items:
type: integer
uniqueItems: true
last_connected_ip:
title: Last connected ip
description: i'm out of ideas
type: string
format: ipv4
readOnly: true
last_connected_at:
title: Last connected at
description: really?
type: string
format: date
readOnly: true
article_slugs:
type: array
items:
type: string
format: slug
pattern: ^[-a-zA-Z0-9_]+$
readOnly: true
uniqueItems: true