mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
documentation for api
This commit is contained in:
parent
e0b689174a
commit
65b751642f
@ -450,4 +450,39 @@ Full configuration example
|
||||
single-collection: single
|
||||
base_role: null
|
||||
|
||||
Maintaining an OpenApi
|
||||
======================
|
||||
|
||||
.. note::
|
||||
|
||||
This is experimental and may change. Keep reading this part.
|
||||
|
||||
Accessing swagger
|
||||
-----------------
|
||||
|
||||
The swagger UI is accessible through `<http://localhost:8001/_dev/swagger>`_
|
||||
|
||||
This is possible only in development mode.
|
||||
|
||||
You must be authenticated with a valid user to access it.
|
||||
|
||||
Maintaining specs
|
||||
-----------------
|
||||
|
||||
Each bundle should have an `open api 3.0 spec file <https://swagger.io/docs/specification/about/>`_ at the bundle's root, and name :code:`chill.api.specs.yaml`.
|
||||
|
||||
.. warning::
|
||||
|
||||
Update the command :code:`specs-build` into `package.json` when adding a new api file.
|
||||
|
||||
The specs may be compiled from the different bundles filed, and validated using docker node:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
./docker-node.sh
|
||||
# build the openapi
|
||||
yarn specs-build
|
||||
# validate
|
||||
yarn specs-validate
|
||||
|
||||
|
||||
|
59
src/Bundle/ChillMainBundle/chill.api.specs.yaml
Normal file
59
src/Bundle/ChillMainBundle/chill.api.specs.yaml
Normal file
@ -0,0 +1,59 @@
|
||||
---
|
||||
openapi: "3.0.0"
|
||||
info:
|
||||
version: "1.0.0"
|
||||
title: "Chill api"
|
||||
description: "Api documentation for chill. Currently, work in progress"
|
||||
servers:
|
||||
- url: "/api"
|
||||
description: "Your current dev server"
|
||||
|
||||
components:
|
||||
parameters:
|
||||
_format:
|
||||
name: _format
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
enum:
|
||||
- json
|
||||
|
||||
paths:
|
||||
/1.0/search.json:
|
||||
get:
|
||||
summary: perform a search across multiple entities
|
||||
tags:
|
||||
- search
|
||||
- person
|
||||
- thirdparty
|
||||
description: >
|
||||
**Warning**: This is currently a stub (not really implemented
|
||||
|
||||
The search is performed across multiple entities. The entities must be listed into
|
||||
`type` parameters.
|
||||
|
||||
The results are ordered by relevance, from the most to the lowest relevant.
|
||||
|
||||
parameters:
|
||||
- name: q
|
||||
in: query
|
||||
required: true
|
||||
description: the pattern to search
|
||||
schema:
|
||||
type: string
|
||||
- name: type[]
|
||||
in: query
|
||||
required: true
|
||||
description: the type entities amongst the search is performed
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
enum:
|
||||
- person
|
||||
- thirdparty
|
||||
responses:
|
||||
200:
|
||||
description: "OK"
|
||||
|
91
src/Bundle/ChillPersonBundle/chill.api.specs.yaml
Normal file
91
src/Bundle/ChillPersonBundle/chill.api.specs.yaml
Normal file
@ -0,0 +1,91 @@
|
||||
components:
|
||||
schemas:
|
||||
PersonById:
|
||||
type: object
|
||||
properties:
|
||||
person_id:
|
||||
type: integer
|
||||
required:
|
||||
- person_id
|
||||
ThirdPartyById:
|
||||
type: object
|
||||
properties:
|
||||
thirdparty_id:
|
||||
type: integer
|
||||
required:
|
||||
- thirdparty_id
|
||||
|
||||
|
||||
paths:
|
||||
/1.0/person/accompanying-course/{id}.json:
|
||||
get:
|
||||
tags:
|
||||
- person
|
||||
summary: "Return the description for an accompanying course (accompanying period)"
|
||||
parameters:
|
||||
- name: id
|
||||
in: path
|
||||
required: true
|
||||
description: The accompanying period's id
|
||||
schema:
|
||||
type: integer
|
||||
format: integer
|
||||
minimum: 1
|
||||
responses:
|
||||
401:
|
||||
description: "Unauthorized"
|
||||
404:
|
||||
description: "Not found"
|
||||
200:
|
||||
description: "OK"
|
||||
/1.0/person/accompanying-course/{id}/requestor.json:
|
||||
post:
|
||||
tags:
|
||||
- person
|
||||
summary: "Add a requestor to the accompanying course"
|
||||
parameters:
|
||||
- name: id
|
||||
in: path
|
||||
required: true
|
||||
description: The accompanying period's id
|
||||
schema:
|
||||
type: integer
|
||||
format: integer
|
||||
minimum: 1
|
||||
requestBody:
|
||||
description: "A person or thirdparty"
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
oneOf:
|
||||
- $ref: '#/components/schemas/PersonById'
|
||||
- $ref: '#/components/schemas/ThirdPartyById'
|
||||
responses:
|
||||
401:
|
||||
description: "Unauthorized"
|
||||
404:
|
||||
description: "Not found"
|
||||
200:
|
||||
description: "OK"
|
||||
delete:
|
||||
tags:
|
||||
- person
|
||||
summary: "Remove the requestor for the accompanying course"
|
||||
parameters:
|
||||
- name: id
|
||||
in: path
|
||||
required: true
|
||||
description: The accompanying period's id
|
||||
schema:
|
||||
type: integer
|
||||
format: integer
|
||||
minimum: 1
|
||||
responses:
|
||||
401:
|
||||
description: "Unauthorized"
|
||||
404:
|
||||
description: "Not found"
|
||||
200:
|
||||
description: "OK"
|
||||
|
Loading…
x
Reference in New Issue
Block a user