Base openapi
This commit is contained in:
		
							
								
								
									
										158
									
								
								Documents/proto/general/openapi.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										158
									
								
								Documents/proto/general/openapi.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,158 @@
 | 
			
		||||
openapi: 3.0.0
 | 
			
		||||
info:
 | 
			
		||||
  title: ClydeAPI
 | 
			
		||||
  description: Clyde's api
 | 
			
		||||
  version: 0.0.1
 | 
			
		||||
 | 
			
		||||
servers:
 | 
			
		||||
  - url: https://clyde.herisson.ovh/api
 | 
			
		||||
    description: default api point for clyde's service
 | 
			
		||||
 | 
			
		||||
paths:
 | 
			
		||||
  /ping:
 | 
			
		||||
    get:
 | 
			
		||||
      summary: Test if the api is up.
 | 
			
		||||
      responses:
 | 
			
		||||
        default:
 | 
			
		||||
          description: Standard response to ping
 | 
			
		||||
          content:
 | 
			
		||||
            text/plain:
 | 
			
		||||
              schema:
 | 
			
		||||
                type: string
 | 
			
		||||
                example: pong
 | 
			
		||||
  /user:
 | 
			
		||||
    put:
 | 
			
		||||
      summary: create a new user
 | 
			
		||||
      tags:
 | 
			
		||||
        - users
 | 
			
		||||
      security:
 | 
			
		||||
        - bearer: []
 | 
			
		||||
      responses:
 | 
			
		||||
        '200':
 | 
			
		||||
          description: User created
 | 
			
		||||
        '401':
 | 
			
		||||
          $ref: '#/components/responses/UnauthorizedError'
 | 
			
		||||
  /user/{mat}:
 | 
			
		||||
    get:
 | 
			
		||||
      summary: get user's info
 | 
			
		||||
      tags:
 | 
			
		||||
        - users
 | 
			
		||||
      responses:
 | 
			
		||||
        '200':
 | 
			
		||||
          description: User found 
 | 
			
		||||
          content:
 | 
			
		||||
            application/json:
 | 
			
		||||
              schema:
 | 
			
		||||
                $ref: "#/components/schemas/User"
 | 
			
		||||
    parameters:
 | 
			
		||||
      - name: mat
 | 
			
		||||
        in: path
 | 
			
		||||
        description: Matricule of the user (unique id)
 | 
			
		||||
        required: true
 | 
			
		||||
        schema:
 | 
			
		||||
          type: integer
 | 
			
		||||
 | 
			
		||||
  /cursus/{id}:
 | 
			
		||||
    get:
 | 
			
		||||
      summary: Voir les informations sur un Cursus
 | 
			
		||||
      tags:
 | 
			
		||||
        - Courses
 | 
			
		||||
      responses:
 | 
			
		||||
        '200':
 | 
			
		||||
          description: Cursus found
 | 
			
		||||
          content:
 | 
			
		||||
            application/json:
 | 
			
		||||
              schema:
 | 
			
		||||
                $ref: '#/components/schemas/Cursus'
 | 
			
		||||
  /courses/{id}:
 | 
			
		||||
    get:
 | 
			
		||||
      summary: Voir les informations sur un cours*
 | 
			
		||||
      tags:
 | 
			
		||||
        - Courses
 | 
			
		||||
      responses:
 | 
			
		||||
    
 | 
			
		||||
    put:
 | 
			
		||||
      summary: Créer un nouveau cours
 | 
			
		||||
      tags:
 | 
			
		||||
        - Courses
 | 
			
		||||
      security: 
 | 
			
		||||
        - bearer: []
 | 
			
		||||
      responses:
 | 
			
		||||
 | 
			
		||||
    delete:
 | 
			
		||||
      summary: Suprimer un cours
 | 
			
		||||
      tags:
 | 
			
		||||
        - Courses
 | 
			
		||||
      security: 
 | 
			
		||||
        - bearer: []
 | 
			
		||||
      responses:
 | 
			
		||||
 | 
			
		||||
    
 | 
			
		||||
components:
 | 
			
		||||
  securitySchemes:
 | 
			
		||||
    bearer:
 | 
			
		||||
      type: http
 | 
			
		||||
      scheme: bearer
 | 
			
		||||
  schemas:
 | 
			
		||||
    User:
 | 
			
		||||
      type: object 
 | 
			
		||||
      properties:
 | 
			
		||||
        RegNo:
 | 
			
		||||
          type: integer
 | 
			
		||||
        Photo:
 | 
			
		||||
          type: object
 | 
			
		||||
        LastName: 
 | 
			
		||||
          type: string
 | 
			
		||||
        FirstName:
 | 
			
		||||
          type: string
 | 
			
		||||
        Email:
 | 
			
		||||
          type: string
 | 
			
		||||
        Address:
 | 
			
		||||
          $ref: "#/components/schemas/Address"
 | 
			
		||||
        BirthDate:
 | 
			
		||||
          type: string
 | 
			
		||||
          description: Follow the iso 8601 ("YYYY-MM-DD")
 | 
			
		||||
        StaffMember:
 | 
			
		||||
          type: boolean
 | 
			
		||||
      example:
 | 
			
		||||
        {
 | 
			
		||||
        "RegNo": 42,
 | 
			
		||||
        "LastName": "Doe" ,
 | 
			
		||||
        "FirstName": "John",
 | 
			
		||||
        "Email": "John.Doe@example.com",
 | 
			
		||||
        "Address": {
 | 
			
		||||
          "Address": "Rue de Tounais 42",
 | 
			
		||||
          "Country": "BE"},
 | 
			
		||||
        "BirthDate": "1941-02-22",
 | 
			
		||||
        "StaffMember": true
 | 
			
		||||
        }
 | 
			
		||||
    Address:
 | 
			
		||||
      type: object
 | 
			
		||||
      properties:
 | 
			
		||||
        Address:
 | 
			
		||||
          type: string
 | 
			
		||||
        Country:
 | 
			
		||||
          type: string
 | 
			
		||||
          description: Follow the ISO-3166-1 alpha-2 standard.
 | 
			
		||||
      example:
 | 
			
		||||
        {
 | 
			
		||||
          "Address": "Rue de Tounais 42",
 | 
			
		||||
          "Country": "BE"
 | 
			
		||||
        }
 | 
			
		||||
    Cursus:
 | 
			
		||||
      type: object
 | 
			
		||||
      properties:
 | 
			
		||||
        Id:
 | 
			
		||||
          type: integer
 | 
			
		||||
        Courses:
 | 
			
		||||
          type: array
 | 
			
		||||
          items:
 | 
			
		||||
            type: string
 | 
			
		||||
      example:
 | 
			
		||||
        {
 | 
			
		||||
        "id": 42,
 | 
			
		||||
        "courses": ['Math', 'Info']
 | 
			
		||||
        }
 | 
			
		||||
  responses:
 | 
			
		||||
    UnauthorizedError:
 | 
			
		||||
      description: Access token is missing or invalid
 | 
			
		||||
		Reference in New Issue
	
	Block a user