feat(browse): gestion CRUD des dossiers depuis la page Browse
- Ajout boutons Modifier/Supprimer sur chaque tuile de dossier - Supprimer visible uniquement si dossier vide (0 APIs, 0 sous-dossiers) - Modale Angular (sans fr-modal DSFR) pour créer/éditer un dossier - Backend: remove() lève BadRequestException si dossier non vide - Ajout fichiers YAML de démo (OpenAPI Petstore, AsyncAPI User Events) Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
This commit is contained in:
101
documentation/files-samples-asyncapi/user-events.yaml
Normal file
101
documentation/files-samples-asyncapi/user-events.yaml
Normal file
@@ -0,0 +1,101 @@
|
||||
asyncapi: "3.0.0"
|
||||
info:
|
||||
title: User Events API
|
||||
version: "1.0.0"
|
||||
description: API événementielle pour les actions utilisateurs
|
||||
channels:
|
||||
userSignedUp:
|
||||
address: user.signed.up
|
||||
messages:
|
||||
userSignedUp:
|
||||
$ref: "#/components/messages/UserSignedUp"
|
||||
userLoggedIn:
|
||||
address: user.logged.in
|
||||
messages:
|
||||
userLoggedIn:
|
||||
$ref: "#/components/messages/UserLoggedIn"
|
||||
orderPlaced:
|
||||
address: order.placed
|
||||
messages:
|
||||
orderPlaced:
|
||||
$ref: "#/components/messages/OrderPlaced"
|
||||
operations:
|
||||
onUserSignedUp:
|
||||
action: receive
|
||||
channel:
|
||||
$ref: "#/channels/userSignedUp"
|
||||
onUserLoggedIn:
|
||||
action: receive
|
||||
channel:
|
||||
$ref: "#/channels/userLoggedIn"
|
||||
onOrderPlaced:
|
||||
action: receive
|
||||
channel:
|
||||
$ref: "#/channels/orderPlaced"
|
||||
components:
|
||||
messages:
|
||||
UserSignedUp:
|
||||
name: UserSignedUp
|
||||
title: Utilisateur inscrit
|
||||
summary: Émis lorsqu'un utilisateur crée un compte
|
||||
payload:
|
||||
type: object
|
||||
required:
|
||||
- userId
|
||||
- email
|
||||
- createdAt
|
||||
properties:
|
||||
userId:
|
||||
type: string
|
||||
format: uuid
|
||||
email:
|
||||
type: string
|
||||
format: email
|
||||
createdAt:
|
||||
type: string
|
||||
format: date-time
|
||||
UserLoggedIn:
|
||||
name: UserLoggedIn
|
||||
title: Utilisateur connecté
|
||||
summary: Émis lorsqu'un utilisateur se connecte
|
||||
payload:
|
||||
type: object
|
||||
required:
|
||||
- userId
|
||||
- loginAt
|
||||
properties:
|
||||
userId:
|
||||
type: string
|
||||
format: uuid
|
||||
loginAt:
|
||||
type: string
|
||||
format: date-time
|
||||
OrderPlaced:
|
||||
name: OrderPlaced
|
||||
title: Commande passée
|
||||
summary: Émis lorsqu'une commande est créée
|
||||
payload:
|
||||
type: object
|
||||
required:
|
||||
- orderId
|
||||
- userId
|
||||
- total
|
||||
properties:
|
||||
orderId:
|
||||
type: string
|
||||
format: uuid
|
||||
userId:
|
||||
type: string
|
||||
format: uuid
|
||||
total:
|
||||
type: number
|
||||
format: float
|
||||
items:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
productId:
|
||||
type: string
|
||||
quantity:
|
||||
type: integer
|
||||
96
documentation/files-samples-oas/petstore.yaml
Normal file
96
documentation/files-samples-oas/petstore.yaml
Normal file
@@ -0,0 +1,96 @@
|
||||
openapi: "3.0.0"
|
||||
info:
|
||||
title: Petstore API
|
||||
version: "1.0.0"
|
||||
description: API de gestion d'une animalerie
|
||||
paths:
|
||||
/pets:
|
||||
get:
|
||||
summary: Liste des animaux
|
||||
operationId: listPets
|
||||
parameters:
|
||||
- name: limit
|
||||
in: query
|
||||
required: false
|
||||
schema:
|
||||
type: integer
|
||||
maximum: 100
|
||||
responses:
|
||||
"200":
|
||||
description: Liste des animaux
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: "#/components/schemas/Pet"
|
||||
post:
|
||||
summary: Créer un animal
|
||||
operationId: createPet
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/NewPet"
|
||||
responses:
|
||||
"201":
|
||||
description: Animal créé
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Pet"
|
||||
/pets/{id}:
|
||||
get:
|
||||
summary: Récupérer un animal par ID
|
||||
operationId: getPet
|
||||
parameters:
|
||||
- name: id
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: integer
|
||||
responses:
|
||||
"200":
|
||||
description: Animal trouvé
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Pet"
|
||||
"404":
|
||||
description: Animal non trouvé
|
||||
delete:
|
||||
summary: Supprimer un animal
|
||||
operationId: deletePet
|
||||
parameters:
|
||||
- name: id
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: integer
|
||||
responses:
|
||||
"204":
|
||||
description: Animal supprimé
|
||||
components:
|
||||
schemas:
|
||||
Pet:
|
||||
type: object
|
||||
required:
|
||||
- id
|
||||
- name
|
||||
properties:
|
||||
id:
|
||||
type: integer
|
||||
name:
|
||||
type: string
|
||||
tag:
|
||||
type: string
|
||||
NewPet:
|
||||
type: object
|
||||
required:
|
||||
- name
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
tag:
|
||||
type: string
|
||||
Reference in New Issue
Block a user