- 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>
102 lines
2.3 KiB
YAML
102 lines
2.3 KiB
YAML
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
|