Skip to content

Aetoskia Blog API 0.2.0

Text Only
This is the **Aetoskia Blog API**, part of the personal service network.

Provides:
- Article CRUD operations
- User comment management
- Tag-based search

Fully async, secured via JWT auth.

Terms of service: https://aetoskia.com/terms
License: MIT License

Servers

Description URL
Production server https://api.aetoskia.com/blogs
Staging environment for internal testing http://server-pi:9001
Local development server http://localhost:8000

blog


POST /authors

Create Author

Request body

JSON
{
    "created_at": "2024-01-01T00:00:00",
    "updated_at": "2024-01-01T00:00:00"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
JSON
{
    "properties": {
        "_id": {
            "anyOf": [
                {
                    "type": "string",
                    "examples": [
                        "507f1f77bcf86cd799439011"
                    ]
                },
                {
                    "type": "null"
                }
            ],
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "username": {
            "type": "string",
            "maxLength": 50,
            "minLength": 3,
            "title": "Username"
        },
        "email": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "email"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Email"
        },
        "is_active": {
            "type": "boolean",
            "title": "Is Active",
            "default": true
        },
        "name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Name"
        },
        "avatar": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Avatar"
        }
    },
    "type": "object",
    "required": [
        "username"
    ],
    "title": "Author",
    "example": {
        "created_at": "2024-01-01T00:00:00",
        "updated_at": "2024-01-01T00:00:00"
    }
}

Response 200 OK

JSON
{
    "created_at": "2024-01-01T00:00:00",
    "updated_at": "2024-01-01T00:00:00"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
JSON
{
    "properties": {
        "_id": {
            "anyOf": [
                {
                    "type": "string",
                    "examples": [
                        "507f1f77bcf86cd799439011"
                    ]
                },
                {
                    "type": "null"
                }
            ],
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "username": {
            "type": "string",
            "maxLength": 50,
            "minLength": 3,
            "title": "Username"
        },
        "email": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "email"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Email"
        },
        "is_active": {
            "type": "boolean",
            "title": "Is Active",
            "default": true
        },
        "name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Name"
        },
        "avatar": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Avatar"
        }
    },
    "type": "object",
    "required": [
        "username"
    ],
    "title": "Author",
    "example": {
        "created_at": "2024-01-01T00:00:00",
        "updated_at": "2024-01-01T00:00:00"
    }
}

Response 422 Unprocessable Content

JSON
{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
JSON
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /authors

List Authors

Input parameters

Parameter In Type Default Nullable Description
limit query integer 10 No
skip query integer 0 No

Response 200 OK

JSON
[
    {
        "created_at": "2024-01-01T00:00:00",
        "updated_at": "2024-01-01T00:00:00"
    }
]
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
JSON
{
    "type": "array",
    "items": {
        "$ref": "#/components/schemas/Author"
    },
    "title": "Response List Authors Authors Get"
}

Response 422 Unprocessable Content

JSON
{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
JSON
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /authors/{author_id}

Get Author

Input parameters

Parameter In Type Default Nullable Description
author_id path string No

Response 200 OK

JSON
{
    "created_at": "2024-01-01T00:00:00",
    "updated_at": "2024-01-01T00:00:00"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
JSON
{
    "properties": {
        "_id": {
            "anyOf": [
                {
                    "type": "string",
                    "examples": [
                        "507f1f77bcf86cd799439011"
                    ]
                },
                {
                    "type": "null"
                }
            ],
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "username": {
            "type": "string",
            "maxLength": 50,
            "minLength": 3,
            "title": "Username"
        },
        "email": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "email"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Email"
        },
        "is_active": {
            "type": "boolean",
            "title": "Is Active",
            "default": true
        },
        "name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Name"
        },
        "avatar": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Avatar"
        }
    },
    "type": "object",
    "required": [
        "username"
    ],
    "title": "Author",
    "example": {
        "created_at": "2024-01-01T00:00:00",
        "updated_at": "2024-01-01T00:00:00"
    }
}

Response 422 Unprocessable Content

JSON
{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
JSON
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

PUT /authors/{author_id}

Update Author

Input parameters

Parameter In Type Default Nullable Description
author_id path string No

Request body

JSON
{
    "created_at": "2024-01-01T00:00:00",
    "updated_at": "2024-01-01T00:00:00"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
JSON
{
    "properties": {
        "_id": {
            "anyOf": [
                {
                    "type": "string",
                    "examples": [
                        "507f1f77bcf86cd799439011"
                    ]
                },
                {
                    "type": "null"
                }
            ],
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "username": {
            "type": "string",
            "maxLength": 50,
            "minLength": 3,
            "title": "Username"
        },
        "email": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "email"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Email"
        },
        "is_active": {
            "type": "boolean",
            "title": "Is Active",
            "default": true
        },
        "name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Name"
        },
        "avatar": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Avatar"
        }
    },
    "type": "object",
    "required": [
        "username"
    ],
    "title": "Author",
    "example": {
        "created_at": "2024-01-01T00:00:00",
        "updated_at": "2024-01-01T00:00:00"
    }
}

Response 200 OK

JSON
{
    "created_at": "2024-01-01T00:00:00",
    "updated_at": "2024-01-01T00:00:00"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
JSON
{
    "properties": {
        "_id": {
            "anyOf": [
                {
                    "type": "string",
                    "examples": [
                        "507f1f77bcf86cd799439011"
                    ]
                },
                {
                    "type": "null"
                }
            ],
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "username": {
            "type": "string",
            "maxLength": 50,
            "minLength": 3,
            "title": "Username"
        },
        "email": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "email"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Email"
        },
        "is_active": {
            "type": "boolean",
            "title": "Is Active",
            "default": true
        },
        "name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Name"
        },
        "avatar": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Avatar"
        }
    },
    "type": "object",
    "required": [
        "username"
    ],
    "title": "Author",
    "example": {
        "created_at": "2024-01-01T00:00:00",
        "updated_at": "2024-01-01T00:00:00"
    }
}

Response 422 Unprocessable Content

JSON
{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
JSON
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

DELETE /authors/{author_id}

Delete Author

Input parameters

Parameter In Type Default Nullable Description
author_id path string No

Response 200 OK

Schema of the response body
JSON

Response 422 Unprocessable Content

JSON
{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
JSON
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /articles

Create Article

Request body

JSON
{
    "created_at": "2024-01-01T00:00:00",
    "updated_at": "2024-01-01T00:00:00"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
JSON
{
    "properties": {
        "_id": {
            "anyOf": [
                {
                    "type": "string",
                    "examples": [
                        "507f1f77bcf86cd799439011"
                    ]
                },
                {
                    "type": "null"
                }
            ],
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "img": {
            "type": "string",
            "title": "Img"
        },
        "tag": {
            "type": "string",
            "title": "Tag"
        },
        "title": {
            "type": "string",
            "title": "Title"
        },
        "description": {
            "type": "string",
            "title": "Description"
        },
        "content": {
            "type": "string",
            "title": "Content"
        },
        "authors": {
            "items": {
                "type": "string",
                "examples": [
                    "507f1f77bcf86cd799439011"
                ]
            },
            "type": "array",
            "title": "Authors"
        }
    },
    "type": "object",
    "required": [
        "img",
        "tag",
        "title",
        "description",
        "content",
        "authors"
    ],
    "title": "Article",
    "example": {
        "created_at": "2024-01-01T00:00:00",
        "updated_at": "2024-01-01T00:00:00"
    }
}

Response 200 OK

JSON
{
    "created_at": "2024-01-01T00:00:00",
    "updated_at": "2024-01-01T00:00:00"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
JSON
{
    "properties": {
        "_id": {
            "anyOf": [
                {
                    "type": "string",
                    "examples": [
                        "507f1f77bcf86cd799439011"
                    ]
                },
                {
                    "type": "null"
                }
            ],
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "img": {
            "type": "string",
            "title": "Img"
        },
        "tag": {
            "type": "string",
            "title": "Tag"
        },
        "title": {
            "type": "string",
            "title": "Title"
        },
        "description": {
            "type": "string",
            "title": "Description"
        },
        "content": {
            "type": "string",
            "title": "Content"
        },
        "authors": {
            "items": {
                "type": "string",
                "examples": [
                    "507f1f77bcf86cd799439011"
                ]
            },
            "type": "array",
            "title": "Authors"
        }
    },
    "type": "object",
    "required": [
        "img",
        "tag",
        "title",
        "description",
        "content",
        "authors"
    ],
    "title": "Article",
    "example": {
        "created_at": "2024-01-01T00:00:00",
        "updated_at": "2024-01-01T00:00:00"
    }
}

Response 422 Unprocessable Content

JSON
{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
JSON
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /articles

List Articles

Input parameters

Parameter In Type Default Nullable Description
limit query integer 10 No
skip query integer 0 No

Response 200 OK

JSON
[
    {
        "created_at": "2024-01-01T00:00:00",
        "updated_at": "2024-01-01T00:00:00"
    }
]
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
JSON
{
    "type": "array",
    "items": {
        "$ref": "#/components/schemas/ArticleResponse"
    },
    "title": "Response List Articles Articles Get"
}

Response 422 Unprocessable Content

JSON
{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
JSON
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /articles/{article_id}

Get Article

Input parameters

Parameter In Type Default Nullable Description
article_id path string No

Response 200 OK

JSON
{
    "created_at": "2024-01-01T00:00:00",
    "updated_at": "2024-01-01T00:00:00"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
JSON
{
    "properties": {
        "_id": {
            "anyOf": [
                {
                    "type": "string",
                    "examples": [
                        "507f1f77bcf86cd799439011"
                    ]
                },
                {
                    "type": "null"
                }
            ],
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "img": {
            "type": "string",
            "title": "Img"
        },
        "tag": {
            "type": "string",
            "title": "Tag"
        },
        "title": {
            "type": "string",
            "title": "Title"
        },
        "description": {
            "type": "string",
            "title": "Description"
        },
        "content": {
            "type": "string",
            "title": "Content"
        },
        "authors": {
            "items": {
                "$ref": "#/components/schemas/Author"
            },
            "type": "array",
            "title": "Authors"
        }
    },
    "type": "object",
    "required": [
        "img",
        "tag",
        "title",
        "description",
        "content",
        "authors"
    ],
    "title": "ArticleResponse",
    "example": {
        "created_at": "2024-01-01T00:00:00",
        "updated_at": "2024-01-01T00:00:00"
    }
}

Response 422 Unprocessable Content

JSON
{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
JSON
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

PUT /articles/{article_id}

Update Article

Input parameters

Parameter In Type Default Nullable Description
article_id path string No

Request body

JSON
{
    "created_at": "2024-01-01T00:00:00",
    "updated_at": "2024-01-01T00:00:00"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
JSON
{
    "properties": {
        "_id": {
            "anyOf": [
                {
                    "type": "string",
                    "examples": [
                        "507f1f77bcf86cd799439011"
                    ]
                },
                {
                    "type": "null"
                }
            ],
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "img": {
            "type": "string",
            "title": "Img"
        },
        "tag": {
            "type": "string",
            "title": "Tag"
        },
        "title": {
            "type": "string",
            "title": "Title"
        },
        "description": {
            "type": "string",
            "title": "Description"
        },
        "content": {
            "type": "string",
            "title": "Content"
        },
        "authors": {
            "items": {
                "type": "string",
                "examples": [
                    "507f1f77bcf86cd799439011"
                ]
            },
            "type": "array",
            "title": "Authors"
        }
    },
    "type": "object",
    "required": [
        "img",
        "tag",
        "title",
        "description",
        "content",
        "authors"
    ],
    "title": "Article",
    "example": {
        "created_at": "2024-01-01T00:00:00",
        "updated_at": "2024-01-01T00:00:00"
    }
}

Response 200 OK

JSON
{
    "created_at": "2024-01-01T00:00:00",
    "updated_at": "2024-01-01T00:00:00"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
JSON
{
    "properties": {
        "_id": {
            "anyOf": [
                {
                    "type": "string",
                    "examples": [
                        "507f1f77bcf86cd799439011"
                    ]
                },
                {
                    "type": "null"
                }
            ],
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "img": {
            "type": "string",
            "title": "Img"
        },
        "tag": {
            "type": "string",
            "title": "Tag"
        },
        "title": {
            "type": "string",
            "title": "Title"
        },
        "description": {
            "type": "string",
            "title": "Description"
        },
        "content": {
            "type": "string",
            "title": "Content"
        },
        "authors": {
            "items": {
                "type": "string",
                "examples": [
                    "507f1f77bcf86cd799439011"
                ]
            },
            "type": "array",
            "title": "Authors"
        }
    },
    "type": "object",
    "required": [
        "img",
        "tag",
        "title",
        "description",
        "content",
        "authors"
    ],
    "title": "Article",
    "example": {
        "created_at": "2024-01-01T00:00:00",
        "updated_at": "2024-01-01T00:00:00"
    }
}

Response 422 Unprocessable Content

JSON
{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
JSON
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

DELETE /articles/{article_id}

Delete Article

Input parameters

Parameter In Type Default Nullable Description
article_id path string No

Response 200 OK

Schema of the response body
JSON

Response 422 Unprocessable Content

JSON
{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
JSON
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

auth


POST /auth/register

Create User

Request body

JSON
{
    "created_at": "2024-01-01T00:00:00",
    "updated_at": "2024-01-01T00:00:00"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
JSON
{
    "properties": {
        "_id": {
            "anyOf": [
                {
                    "type": "string",
                    "examples": [
                        "507f1f77bcf86cd799439011"
                    ]
                },
                {
                    "type": "null"
                }
            ],
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "username": {
            "type": "string",
            "maxLength": 50,
            "minLength": 3,
            "title": "Username"
        },
        "email": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "email"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Email"
        },
        "is_active": {
            "type": "boolean",
            "title": "Is Active",
            "default": true
        },
        "password": {
            "type": "string",
            "minLength": 6,
            "title": "Password"
        }
    },
    "type": "object",
    "required": [
        "username",
        "password"
    ],
    "title": "UserAuth",
    "example": {
        "created_at": "2024-01-01T00:00:00",
        "updated_at": "2024-01-01T00:00:00"
    }
}

Response 200 OK

JSON
{
    "created_at": "2024-01-01T00:00:00",
    "updated_at": "2024-01-01T00:00:00"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
JSON
{
    "properties": {
        "_id": {
            "anyOf": [
                {
                    "type": "string",
                    "examples": [
                        "507f1f77bcf86cd799439011"
                    ]
                },
                {
                    "type": "null"
                }
            ],
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "username": {
            "type": "string",
            "maxLength": 50,
            "minLength": 3,
            "title": "Username"
        },
        "email": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "email"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Email"
        },
        "is_active": {
            "type": "boolean",
            "title": "Is Active",
            "default": true
        }
    },
    "type": "object",
    "required": [
        "username"
    ],
    "title": "PublicUser",
    "example": {
        "created_at": "2024-01-01T00:00:00",
        "updated_at": "2024-01-01T00:00:00"
    }
}

Response 422 Unprocessable Content

JSON
{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
JSON
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /auth/login

Login

Request body

JSON
{
    "created_at": "2024-01-01T00:00:00",
    "updated_at": "2024-01-01T00:00:00"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
JSON
{
    "properties": {
        "_id": {
            "anyOf": [
                {
                    "type": "string",
                    "examples": [
                        "507f1f77bcf86cd799439011"
                    ]
                },
                {
                    "type": "null"
                }
            ],
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "username": {
            "type": "string",
            "maxLength": 50,
            "minLength": 3,
            "title": "Username"
        },
        "email": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "email"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Email"
        },
        "is_active": {
            "type": "boolean",
            "title": "Is Active",
            "default": true
        },
        "password": {
            "type": "string",
            "minLength": 6,
            "title": "Password"
        }
    },
    "type": "object",
    "required": [
        "username",
        "password"
    ],
    "title": "UserAuth",
    "example": {
        "created_at": "2024-01-01T00:00:00",
        "updated_at": "2024-01-01T00:00:00"
    }
}

Response 200 OK

Schema of the response body
JSON

Response 422 Unprocessable Content

JSON
{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
JSON
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /auth/me

Read Users Me

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No

Response 200 OK

JSON
{
    "created_at": "2024-01-01T00:00:00",
    "updated_at": "2024-01-01T00:00:00"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
JSON
{
    "properties": {
        "_id": {
            "anyOf": [
                {
                    "type": "string",
                    "examples": [
                        "507f1f77bcf86cd799439011"
                    ]
                },
                {
                    "type": "null"
                }
            ],
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "username": {
            "type": "string",
            "maxLength": 50,
            "minLength": 3,
            "title": "Username"
        },
        "email": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "email"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Email"
        },
        "is_active": {
            "type": "boolean",
            "title": "Is Active",
            "default": true
        }
    },
    "type": "object",
    "required": [
        "username"
    ],
    "title": "PublicUser",
    "example": {
        "created_at": "2024-01-01T00:00:00",
        "updated_at": "2024-01-01T00:00:00"
    }
}

POST /auth/logout

Logout

Response 200 OK

Schema of the response body
JSON

Endpoints


GET /health

Health Check

Response 200 OK

Schema of the response body
JSON


Schemas

Article

Name Type
_id
authors Array<string>
content string
created_at string(date-time)
description string
img string
tag string
title string
updated_at string(date-time)

ArticleResponse

Name Type
_id
authors Array<Author>
content string
created_at string(date-time)
description string
img string
tag string
title string
updated_at string(date-time)

Author

Name Type
_id
avatar
created_at string(date-time)
email
is_active boolean
name
updated_at string(date-time)
username string

HTTPValidationError

Name Type
detail Array<ValidationError>

PublicUser

Name Type
_id
created_at string(date-time)
email
is_active boolean
updated_at string(date-time)
username string

UserAuth

Name Type
_id
created_at string(date-time)
email
is_active boolean
password string
updated_at string(date-time)
username string

ValidationError

Name Type
loc Array<>
msg string
type string

Security schemes

Name Type Scheme Description
OAuth2PasswordBearer oauth2

Tags

Name Description
Articles Operations for creating, reading, updating, and deleting blog articles.
Users User management and authentication endpoints.