Adding Swagger
This commit is contained in:
@@ -0,0 +1,270 @@
|
||||
paths:
|
||||
/api/v3/members:
|
||||
get:
|
||||
summary: Récupère la liste de tous les membres
|
||||
description: Retourne une liste paginée de tous les membres. Authentification requise.
|
||||
tags:
|
||||
- Members
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- in: query
|
||||
name: page
|
||||
schema:
|
||||
type: integer
|
||||
default: 1
|
||||
description: Numéro de page
|
||||
- in: query
|
||||
name: limit
|
||||
schema:
|
||||
type: integer
|
||||
default: 20
|
||||
description: Nombre de membres par page
|
||||
- in: query
|
||||
name: clanId
|
||||
schema:
|
||||
type: integer
|
||||
description: Filtrer les membres par clan
|
||||
- in: query
|
||||
name: search
|
||||
schema:
|
||||
type: string
|
||||
description: Terme de recherche pour les membres
|
||||
responses:
|
||||
'200':
|
||||
description: Liste des membres récupérée avec succès
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
members:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/Member'
|
||||
membersCount:
|
||||
type: integer
|
||||
'401':
|
||||
description: Non authentifié
|
||||
'400':
|
||||
description: Erreur de validation
|
||||
'500':
|
||||
description: Erreur serveur
|
||||
|
||||
post:
|
||||
summary: Crée un nouveau membre
|
||||
description: Crée un nouveau membre du clan. Authentification requise.
|
||||
tags:
|
||||
- Members
|
||||
security:
|
||||
- bearerAuth: []
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
required:
|
||||
- member
|
||||
properties:
|
||||
member:
|
||||
type: object
|
||||
required:
|
||||
- userId
|
||||
- clanId
|
||||
properties:
|
||||
userId:
|
||||
type: integer
|
||||
example: 1
|
||||
clanId:
|
||||
type: integer
|
||||
example: 1
|
||||
role:
|
||||
type: string
|
||||
enum: ["member", "officer", "leader"]
|
||||
default: "member"
|
||||
example: "member"
|
||||
joinedAt:
|
||||
type: string
|
||||
format: date-time
|
||||
responses:
|
||||
'201':
|
||||
description: Membre créé avec succès
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
member:
|
||||
$ref: '#/components/schemas/Member'
|
||||
'400':
|
||||
description: Données invalides
|
||||
'401':
|
||||
description: Non authentifié
|
||||
'422':
|
||||
description: Erreur de validation des données
|
||||
'500':
|
||||
description: Erreur serveur
|
||||
|
||||
/api/v3/members/{memberId}:
|
||||
get:
|
||||
summary: Récupère les détails d'un membre
|
||||
description: Retourne les détails complets d'un membre spécifique. Authentification requise.
|
||||
tags:
|
||||
- Members
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- in: path
|
||||
name: memberId
|
||||
required: true
|
||||
schema:
|
||||
type: integer
|
||||
description: L'ID unique du membre
|
||||
responses:
|
||||
'200':
|
||||
description: Membre récupéré avec succès
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
member:
|
||||
$ref: '#/components/schemas/Member'
|
||||
'401':
|
||||
description: Non authentifié
|
||||
'404':
|
||||
description: Membre non trouvé
|
||||
'500':
|
||||
description: Erreur serveur
|
||||
|
||||
put:
|
||||
summary: Met à jour un membre
|
||||
description: Met à jour les informations d'un membre (rôle, date d'adhésion, etc.). Authentification requise.
|
||||
tags:
|
||||
- Members
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- in: path
|
||||
name: memberId
|
||||
required: true
|
||||
schema:
|
||||
type: integer
|
||||
description: L'ID unique du membre
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
required:
|
||||
- member
|
||||
properties:
|
||||
member:
|
||||
type: object
|
||||
properties:
|
||||
role:
|
||||
type: string
|
||||
enum: ["member", "officer", "leader"]
|
||||
joinedAt:
|
||||
type: string
|
||||
format: date-time
|
||||
responses:
|
||||
'200':
|
||||
description: Membre mis à jour avec succès
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
member:
|
||||
$ref: '#/components/schemas/Member'
|
||||
'401':
|
||||
description: Non authentifié
|
||||
'404':
|
||||
description: Membre non trouvé
|
||||
'422':
|
||||
description: Erreur de validation des données
|
||||
'500':
|
||||
description: Erreur serveur
|
||||
|
||||
delete:
|
||||
summary: Supprime un membre
|
||||
description: Supprime un membre du clan. Authentification requise.
|
||||
tags:
|
||||
- Members
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- in: path
|
||||
name: memberId
|
||||
required: true
|
||||
schema:
|
||||
type: integer
|
||||
description: L'ID unique du membre
|
||||
responses:
|
||||
'200':
|
||||
description: Membre supprimé avec succès
|
||||
'401':
|
||||
description: Non authentifié
|
||||
'403':
|
||||
description: Vous n'êtes pas autorisé à supprimer ce membre
|
||||
'404':
|
||||
description: Membre non trouvé
|
||||
'500':
|
||||
description: Erreur serveur
|
||||
|
||||
components:
|
||||
schemas:
|
||||
Member:
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
type: integer
|
||||
description: Identifiant unique du membre
|
||||
userId:
|
||||
type: integer
|
||||
description: ID de l'utilisateur associé
|
||||
user:
|
||||
type: object
|
||||
description: Informations de l'utilisateur
|
||||
properties:
|
||||
id:
|
||||
type: integer
|
||||
username:
|
||||
type: string
|
||||
email:
|
||||
type: string
|
||||
image:
|
||||
type: string
|
||||
clanId:
|
||||
type: integer
|
||||
description: ID du clan
|
||||
clan:
|
||||
type: object
|
||||
description: Informations du clan
|
||||
properties:
|
||||
id:
|
||||
type: integer
|
||||
name:
|
||||
type: string
|
||||
level:
|
||||
type: integer
|
||||
role:
|
||||
type: string
|
||||
description: Rôle du membre dans le clan
|
||||
enum: ["member", "officer", "leader"]
|
||||
example: "member"
|
||||
joinedAt:
|
||||
type: string
|
||||
format: date-time
|
||||
description: Date d'adhésion au clan
|
||||
createdAt:
|
||||
type: string
|
||||
format: date-time
|
||||
description: Date/heure de création du membre
|
||||
updatedAt:
|
||||
type: string
|
||||
format: date-time
|
||||
description: Date/heure de la dernière mise à jour
|
||||
Reference in New Issue
Block a user