swagger deployed at /swagger
This commit is contained in:
0
laravel/resources/css/app.css
Normal file → Executable file
0
laravel/resources/css/app.css
Normal file → Executable file
0
laravel/resources/js/app.js
Normal file → Executable file
0
laravel/resources/js/app.js
Normal file → Executable file
0
laravel/resources/js/bootstrap.js
vendored
Normal file → Executable file
0
laravel/resources/js/bootstrap.js
vendored
Normal file → Executable file
432
laravel/resources/swagger/openapi.json
Normal file
432
laravel/resources/swagger/openapi.json
Normal file
@@ -0,0 +1,432 @@
|
||||
{
|
||||
"openapi": "3.0.4",
|
||||
"info": {
|
||||
"title": "Blog API",
|
||||
"description": "Projet Laravel avec Sanctum pour l'authentification",
|
||||
"license": {
|
||||
"name": "Creative Commons 4.0",
|
||||
"url": "https://creativecommons.org/licenses/by/4.0/"
|
||||
},
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"servers": [
|
||||
{
|
||||
"url": "https://isi2.ale-pri.com/api/",
|
||||
"description": "Serveur de production"
|
||||
},
|
||||
{
|
||||
"url": "http://localhost:8000/api/",
|
||||
"description": "Serveur de développement local"
|
||||
}
|
||||
],
|
||||
"tags": [
|
||||
{
|
||||
"name": "billets",
|
||||
"description": "Opérations sur les billets"
|
||||
},
|
||||
{
|
||||
"name": "commentaires",
|
||||
"description": "Operations sur les commentaires"
|
||||
},
|
||||
{
|
||||
"name": "user",
|
||||
"description": "Operations about user"
|
||||
}
|
||||
],
|
||||
"paths": {
|
||||
"/billets": {
|
||||
"get": {
|
||||
"tags": [
|
||||
"billets"
|
||||
],
|
||||
"summary": "Liste des billets",
|
||||
"operationId": "getBillets",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "Liste des billets",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"data": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/Billet"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/login": {
|
||||
"post": {
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "Authentification réussie",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/TokenResponse"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"401": {
|
||||
"description": "Authentification échouée"
|
||||
}
|
||||
},
|
||||
"tags": [
|
||||
"user"
|
||||
],
|
||||
"summary": "Authentification de l'utilisateur",
|
||||
"operationId": "loginUser",
|
||||
"requestBody": {
|
||||
"required": true,
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/LoginRequest"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/register": {
|
||||
"post": {
|
||||
"responses": {
|
||||
"201": {
|
||||
"description": "Utilisateur créé avec succès",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/TokenResponse"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"422": {
|
||||
"description": "Erreur de validation"
|
||||
}
|
||||
},
|
||||
"tags": [
|
||||
"user"
|
||||
],
|
||||
"summary": "Enregistrement d'un nouvel utilisateur",
|
||||
"operationId": "registerUser",
|
||||
"requestBody": {
|
||||
"required": true,
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/RegisterRequest"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/user": {
|
||||
"get": {
|
||||
"security": [
|
||||
{
|
||||
"sanctum": []
|
||||
}
|
||||
],
|
||||
"tags": [
|
||||
"user"
|
||||
],
|
||||
"summary": "Récupérer les informations de l'utilisateur connecté",
|
||||
"operationId": "getUser",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "Informations de l'utilisateur",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/User"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"401": {
|
||||
"description": "Non autorisé"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/user/logout": {
|
||||
"post": {
|
||||
"security": [
|
||||
{
|
||||
"sanctum": []
|
||||
}
|
||||
],
|
||||
"tags": [
|
||||
"user"
|
||||
],
|
||||
"summary": "Déconnexion de l'utilisateur",
|
||||
"operationId": "logoutUser",
|
||||
"responses": {
|
||||
"204": {
|
||||
"description": "Déconnexion réussie"
|
||||
},
|
||||
"401": {
|
||||
"description": "Non autorisé"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/billets/{id}": {
|
||||
"get": {
|
||||
"security": [
|
||||
{
|
||||
"sanctum": []
|
||||
}
|
||||
],
|
||||
"tags": [
|
||||
"billets"
|
||||
],
|
||||
"summary": "Détails d'un billet",
|
||||
"operationId": "getBilletById",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "id",
|
||||
"in": "path",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"type": "integer"
|
||||
},
|
||||
"description": "ID du billet"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "Détails du billet",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/BilletWithComments"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"404": {
|
||||
"description": "Billet non trouvé"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/commentaires": {
|
||||
"post": {
|
||||
"security": [
|
||||
{
|
||||
"sanctum": []
|
||||
}
|
||||
],
|
||||
"tags": [
|
||||
"commentaires"
|
||||
],
|
||||
"summary": "Ajouter un commentaire à un billet",
|
||||
"operationId": "addComment",
|
||||
"requestBody": {
|
||||
"required": true,
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/CommentaireRequest"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"responses": {
|
||||
"201": {
|
||||
"description": "Commentaire ajouté avec succès",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/Commentaire"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"422": {
|
||||
"description": "Erreur de validation"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"schemas": {
|
||||
"Billet": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"Date": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"example": "2023-10-01"
|
||||
},
|
||||
"Titre": {
|
||||
"type": "string",
|
||||
"example": "Billet 1"
|
||||
},
|
||||
"Contenu": {
|
||||
"type": "string",
|
||||
"example": "Lorem ipsum dolor sit amet."
|
||||
}
|
||||
}
|
||||
},
|
||||
"BilletWithComments": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"Date": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"example": "2023-10-01"
|
||||
},
|
||||
"Titre": {
|
||||
"type": "string",
|
||||
"example": "Billet 1"
|
||||
},
|
||||
"Contenu": {
|
||||
"type": "string",
|
||||
"example": "Lorem ipsum dolor sit amet."
|
||||
},
|
||||
"Commentaires": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/Commentaire"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Commentaire": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"COM_DATE": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"example": "2023-10-01"
|
||||
},
|
||||
"COM_AUTEUR": {
|
||||
"type": "string",
|
||||
"example": "John Doe"
|
||||
},
|
||||
"COM_CONTENU": {
|
||||
"type": "string",
|
||||
"example": "Lorem ipsum dolor sit amet."
|
||||
},
|
||||
"billet_id": {
|
||||
"type": "integer",
|
||||
"example": 1
|
||||
},
|
||||
"user_id": {
|
||||
"type": "integer",
|
||||
"example": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"CommentaireRequest": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"COM_DATE": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"example": "2023-10-01"
|
||||
},
|
||||
"COM_CONTENU": {
|
||||
"type": "string",
|
||||
"example": "Lorem ipsum dolor sit amet."
|
||||
},
|
||||
"billet_id": {
|
||||
"type": "integer",
|
||||
"example": 1
|
||||
},
|
||||
"user_id": {
|
||||
"type": "integer",
|
||||
"example": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"LoginRequest": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"email": {
|
||||
"type": "string",
|
||||
"format": "email",
|
||||
"example": "au@secou.rs"
|
||||
},
|
||||
"password": {
|
||||
"type": "string",
|
||||
"format": "password",
|
||||
"example": "secret123"
|
||||
}
|
||||
}
|
||||
},
|
||||
"TokenResponse": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"token": {
|
||||
"type": "string",
|
||||
"example": "1|a2b3c4d5e6f7g8h9i0j"
|
||||
},
|
||||
"type": {
|
||||
"type": "string",
|
||||
"example": "Bearer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"RegisterRequest": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"example": "John Doe"
|
||||
},
|
||||
"email": {
|
||||
"type": "string",
|
||||
"format": "email",
|
||||
"example": "au@secou.rs"
|
||||
},
|
||||
"password": {
|
||||
"type": "string",
|
||||
"format": "password",
|
||||
"example": "secret123"
|
||||
}
|
||||
}
|
||||
},
|
||||
"User": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"example": 1
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"example": "John Doe"
|
||||
},
|
||||
"email": {
|
||||
"type": "string",
|
||||
"format": "email",
|
||||
"example": "au@secou.rs"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"securitySchemes": {
|
||||
"sanctum": {
|
||||
"type": "http",
|
||||
"scheme": "bearer",
|
||||
"bearerFormat": "Bearer",
|
||||
"description": "Utiliser le token Bearer pour l'authentification"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
281
laravel/resources/swagger/openapi.yml
Executable file
281
laravel/resources/swagger/openapi.yml
Executable file
@@ -0,0 +1,281 @@
|
||||
openapi: 3.0.4
|
||||
info:
|
||||
title: Blog API
|
||||
description: |-
|
||||
Projet Laravel avec Sanctum pour l'authentification
|
||||
license:
|
||||
name: Creative Commons 4.0
|
||||
url: https://creativecommons.org/licenses/by/4.0/
|
||||
version: 1.0.0
|
||||
servers:
|
||||
- url: https://isi2.ale-pri.com/api/
|
||||
description: Serveur de production
|
||||
- url: http://localhost:8000/api/
|
||||
description: Serveur de développement local
|
||||
tags:
|
||||
- name: billets
|
||||
description: Opérations sur les billets
|
||||
- name: commentaires
|
||||
description: Operations sur les commentaires
|
||||
- name: user
|
||||
description: Operations about user
|
||||
paths:
|
||||
/billets:
|
||||
get:
|
||||
tags:
|
||||
- billets
|
||||
summary: Liste des billets
|
||||
operationId: getBillets
|
||||
responses:
|
||||
'200':
|
||||
description: Liste des billets
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
data:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/Billet'
|
||||
/login:
|
||||
post:
|
||||
responses:
|
||||
'200':
|
||||
description: Authentification réussie
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/TokenResponse'
|
||||
'401':
|
||||
description: Authentification échouée
|
||||
tags:
|
||||
- user
|
||||
summary: Authentification de l'utilisateur
|
||||
operationId: loginUser
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/LoginRequest'
|
||||
/register:
|
||||
post:
|
||||
responses:
|
||||
'201':
|
||||
description: Utilisateur créé avec succès
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/TokenResponse'
|
||||
'422':
|
||||
description: Erreur de validation
|
||||
tags:
|
||||
- user
|
||||
summary: Enregistrement d'un nouvel utilisateur
|
||||
operationId: registerUser
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/RegisterRequest'
|
||||
/user:
|
||||
get:
|
||||
security:
|
||||
- sanctum: []
|
||||
tags:
|
||||
- user
|
||||
summary: Récupérer les informations de l'utilisateur connecté
|
||||
operationId: getUser
|
||||
responses:
|
||||
'200':
|
||||
description: Informations de l'utilisateur
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/User'
|
||||
'401':
|
||||
description: Non autorisé
|
||||
/user/logout:
|
||||
post:
|
||||
security:
|
||||
- sanctum: []
|
||||
tags:
|
||||
- user
|
||||
summary: Déconnexion de l'utilisateur
|
||||
operationId: logoutUser
|
||||
responses:
|
||||
'204':
|
||||
description: Déconnexion réussie
|
||||
'401':
|
||||
description: Non autorisé
|
||||
/billets/{id}:
|
||||
get:
|
||||
security:
|
||||
- sanctum: []
|
||||
tags:
|
||||
- billets
|
||||
summary: Détails d'un billet
|
||||
operationId: getBilletById
|
||||
parameters:
|
||||
- name: id
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: integer
|
||||
description: ID du billet
|
||||
responses:
|
||||
'200':
|
||||
description: Détails du billet
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/BilletWithComments'
|
||||
'404':
|
||||
description: Billet non trouvé
|
||||
/commentaires:
|
||||
post:
|
||||
security:
|
||||
- sanctum: []
|
||||
tags:
|
||||
- commentaires
|
||||
summary: Ajouter un commentaire à un billet
|
||||
operationId: addComment
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/CommentaireRequest'
|
||||
responses:
|
||||
'201':
|
||||
description: Commentaire ajouté avec succès
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Commentaire'
|
||||
'422':
|
||||
description: Erreur de validation
|
||||
|
||||
|
||||
components:
|
||||
schemas:
|
||||
Billet:
|
||||
type: object
|
||||
properties:
|
||||
Date:
|
||||
type: string
|
||||
format: date-time
|
||||
example: '2023-10-01'
|
||||
Titre:
|
||||
type: string
|
||||
example: Billet 1
|
||||
Contenu:
|
||||
type: string
|
||||
example: Lorem ipsum dolor sit amet.
|
||||
BilletWithComments:
|
||||
type: object
|
||||
properties:
|
||||
Date:
|
||||
type: string
|
||||
format: date-time
|
||||
example: '2023-10-01'
|
||||
Titre:
|
||||
type: string
|
||||
example: Billet 1
|
||||
Contenu:
|
||||
type: string
|
||||
example: Lorem ipsum dolor sit amet.
|
||||
Commentaires:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/Commentaire'
|
||||
Commentaire:
|
||||
type: object
|
||||
properties:
|
||||
COM_DATE:
|
||||
type: string
|
||||
format: date-time
|
||||
example: '2023-10-01'
|
||||
COM_AUTEUR:
|
||||
type: string
|
||||
example: John Doe
|
||||
COM_CONTENU:
|
||||
type: string
|
||||
example: Lorem ipsum dolor sit amet.
|
||||
billet_id:
|
||||
type: integer
|
||||
example: 1
|
||||
user_id:
|
||||
type: integer
|
||||
example: 1
|
||||
CommentaireRequest:
|
||||
type: object
|
||||
properties:
|
||||
COM_DATE:
|
||||
type: string
|
||||
format: date-time
|
||||
example: '2023-10-01'
|
||||
COM_CONTENU:
|
||||
type: string
|
||||
example: Lorem ipsum dolor sit amet.
|
||||
billet_id:
|
||||
type: integer
|
||||
example: 1
|
||||
user_id:
|
||||
type: integer
|
||||
example: 1
|
||||
LoginRequest:
|
||||
type: object
|
||||
properties:
|
||||
email:
|
||||
type: string
|
||||
format: email
|
||||
example: au@secou.rs
|
||||
password:
|
||||
type: string
|
||||
format: password
|
||||
example: secret123
|
||||
TokenResponse:
|
||||
type: object
|
||||
properties:
|
||||
token:
|
||||
type: string
|
||||
example: 1|a2b3c4d5e6f7g8h9i0j
|
||||
type:
|
||||
type: string
|
||||
example: Bearer
|
||||
RegisterRequest:
|
||||
type: object
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
example: John Doe
|
||||
email:
|
||||
type: string
|
||||
format: email
|
||||
example: au@secou.rs
|
||||
password:
|
||||
type: string
|
||||
format: password
|
||||
example: secret123
|
||||
User:
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
type: integer
|
||||
example: 1
|
||||
name:
|
||||
type: string
|
||||
example: John Doe
|
||||
email:
|
||||
type: string
|
||||
format: email
|
||||
example: au@secou.rs
|
||||
securitySchemes:
|
||||
sanctum:
|
||||
type: http
|
||||
scheme: bearer
|
||||
bearerFormat: Bearer
|
||||
description: Utiliser le token Bearer pour l'authentification
|
||||
0
laravel/resources/views/welcome.blade.php
Normal file → Executable file
0
laravel/resources/views/welcome.blade.php
Normal file → Executable file
Reference in New Issue
Block a user