Skip to content

Aetoskia Blog API 0.0.4

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
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": {
            "type": "string",
            "title": "Email"
        },
        "is_active": {
            "type": "boolean",
            "title": "Is Active",
            "default": true
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "avatar": {
            "type": "string",
            "title": "Avatar"
        }
    },
    "type": "object",
    "required": [
        "username",
        "email",
        "name",
        "avatar"
    ],
    "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": {
            "type": "string",
            "title": "Email"
        },
        "is_active": {
            "type": "boolean",
            "title": "Is Active",
            "default": true
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "avatar": {
            "type": "string",
            "title": "Avatar"
        }
    },
    "type": "object",
    "required": [
        "username",
        "email",
        "name",
        "avatar"
    ],
    "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": {
            "type": "string",
            "title": "Email"
        },
        "is_active": {
            "type": "boolean",
            "title": "Is Active",
            "default": true
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "avatar": {
            "type": "string",
            "title": "Avatar"
        }
    },
    "type": "object",
    "required": [
        "username",
        "email",
        "name",
        "avatar"
    ],
    "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
email query 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": {
            "type": "string",
            "title": "Email"
        },
        "is_active": {
            "type": "boolean",
            "title": "Is Active",
            "default": true
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "avatar": {
            "type": "string",
            "title": "Avatar"
        }
    },
    "type": "object",
    "required": [
        "username",
        "email",
        "name",
        "avatar"
    ],
    "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"
    ],
    "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"
    ],
    "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"
    ],
    "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"
    ],
    "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"
}

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 string
created_at string(date-time)
email string
is_active boolean
name string
updated_at string(date-time)
username string

HTTPValidationError

Name Type
detail Array<ValidationError>

ValidationError

Name Type
loc Array<>
msg string
type string

Tags

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