PyBlogAPI! Esta API REST com Django permite aos usuários gerenciar uma plataforma de blog simples. O projeto foi construído com várias tecnologias, incluindo Docker, Django, Django Rest Framework e outras. Este documento descreve como começar com a configuração, o uso geral e abrange os endpoints disponíveis.
- Configuração e Instalação
- Utilização
- Negociação de Conteúdo
- Autenticação
- Documentação da API
- Endpoints da API
- Interface Admin
- Dependências
Clone o projeto:
git clone https://github.com/candidosouza/py_blog_api.git
Entre na pasta raiz do projeto
cd py_blog_api
Suba os contaneres
docker-compose up -d
Entre no container app
docker compose exec app bash
Ative o ambiente virtual
poetry shell
Execute as migrações
python manage.py migrate
Rode as fistures
python manage.py seeds
Suba o servidor
python manage.py runserver 0.0.0.0:8000
acesse a url
http://localhost:8000/api/
usuário admin
user: admin password: admin
A API possui vários endpoints que permitem gerenciar categorias, posts e comentários. Todos os endpoints são protegidos por autenticação básica.
A PyBlogAPI suporta negociação de conteúdo para responder com diferentes formatos de mídia de acordo com o que o cliente solicita. Atualmente, suporta os formatos JSON
e XML
. Para especificar o formato desejado, use o cabeçalho Accept
em sua solicitação:
- Para
JSON
:Accept: application/json
- Para
XML
:Accept: application/xml
A autenticação é feita através de Basic Authentication. Você precisará de um nome de usuário e uma senha válidos para acessar os endpoints.
- user: admin
- password: admin
A documentação da API está disponível em:
/swagger/
/schema.json/
/redoc/
...
GET /categories/
: Listar todas as categoriasPOST /categories/
: Criar uma nova categoriaPUT /categories/{id}/
: Atualizar uma categoria existenteDELETE /categories/{id}/
: Deletar uma categoria
GET /posts/
: Listar todos os postsPOST /posts/
: Criar um novo postPUT /posts/{id}/
: Atualizar um post existenteDELETE /posts/{id}/
: Deletar um postGET /posts/user/{id}/
: Listar todos os posts de um usuário específicoGET /categories/{id}/posts/
: Listar todos os posts de uma categoria específica
GET /comments/
: Listar todos os comentáriosPOST /comments/
: Criar um novo comentárioPUT /comments/{id}/
: Atualizar um comentário existenteDELETE /comments/{id}/
: Deletar um comentárioGET /posts/{id}/comments/
: Listar todos os comentários de um post específico
GET /posts/{id}/comments/?version=2
: Listar todos os comentários de um post específico com a versão 2
O Django Admin está disponível para gerenciamento avançado dos modelos. Os modelos disponíveis incluem:
- User com UserProfile
- Category
- Post
- Comment
- Docker
- Django
- Django Rest Framework
- PyJWT
- Faker
- django-filter
- python-dotenv
- dj-database-url
- django-cors-headers
- django-redis
- djangorestframework-xml
- drf-yasg