37074-vm/openapi.json
Flatlogic Bot c2cb4a5b67 1.0
2025-12-19 19:07:10 +00:00

202 lines
6.3 KiB
JSON

{
"openapi": "3.0.0",
"info": {
"title": "Laravel API",
"version": "1.0.0"
},
"paths": {
"/api/posts": {
"get": {
"summary": "List posts",
"responses": {
"200": {
"description": "A paginated list of posts.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Post"
}
}
}
}
}
}
}
}
},
"post": {
"summary": "Create a post",
"security": [
{
"bearerAuth": []
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NewPost"
}
}
}
},
"responses": {
"201": {
"description": "Post created successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Post"
}
}
}
},
"422": {
"description": "Validation error"
}
}
}
},
"/api/posts/{id}": {
"get": {
"summary": "Get a specific post",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "The post.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Post"
}
}
}
}
}
},
"put": {
"summary": "Update a post",
"security": [
{
"bearerAuth": []
}
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NewPost"
}
}
}
},
"responses": {
"200": {
"description": "Post updated successfully"
}
}
},
"delete": {
"summary": "Delete a post",
"security": [
{
"bearerAuth": []
}
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"204": {
"description": "Post deleted successfully"
}
}
}
}
},
"components": {
"securitySchemes": {
"bearerAuth": {
"type": "http",
"scheme": "bearer"
}
},
"schemas": {
"Post": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"title": {
"type": "string"
},
"body": {
"type": "string"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
},
"NewPost": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"body": {
"type": "string"
}
},
"required": [
"title",
"body"
]
}
}
}
}