An open API service indexing awesome lists of open source software.

https://github.com/ailsonguedes/api-catalogo-de-livros

Esta é uma API de catálogo de livros desenvolvida com Django Rest Framework, foi projetada para armazenar informações sobre livros, incluindo nome do livro, nome do autor, ano de lançamento e número da edição.
https://github.com/ailsonguedes/api-catalogo-de-livros

api api-rest django django-api django-rest-framework python3

Last synced: 9 months ago
JSON representation

Esta é uma API de catálogo de livros desenvolvida com Django Rest Framework, foi projetada para armazenar informações sobre livros, incluindo nome do livro, nome do autor, ano de lançamento e número da edição.

Awesome Lists containing this project

README

          

API de Catálogo de Livros

Esta é uma API de catálogo de livros desenvolvida com Django Rest Framework, foi projetada para armazenar informações sobre livros, incluindo nome do livro, nome do autor, ano de lançamento e número da edição.
Você também poderá buscar os livros por gênero, nome do autor, nome do livro, tipo ou nome da editora.









## 🔧 Ferramentas

- Python: é uma linguagem de programação de alto nível, interpretada, orientada a objetos e de propósito geral.
- Django: framework de desenvolvimento web de código aberto, escrito em Python, que oferece uma estrutura robusta e eficiente para a criação de aplicativos web.
- Django Rest Framework: é uma poderosa biblioteca de terceiros para o Django, um framework de desenvolvimento web em Python. O DRF estende a funcionalidade do Django para facilitar a criação de APIs (Application Programming Interfaces) RESTful de maneira eficiente e consistente.

## 📍 Endpoints

- `GET /livro/`: Retorna a lista de todos os livros no catálogo.
- `POST /livro/`: Cria um novo livro no catálogo.
- `GET /livro/{id}/`: Retorna os detalhes de um livro específico com base no ID.
- `PUT /livro/{id}/`: Atualiza as informações de um livro específico com base no ID.
- `GET /livro/?search={param}/`: Retorna os detalhes de livros baseado em parametros que podem ser: `genero`, `nome do autor`, `nome do livro`, `editora` ou `tipo`.
- `DELETE /livro/{id}/`: Exclui um livro específico com base no ID.

## 📄 Modelos de Dados

- `Livro`:
- `id` (campo automático): O identificador único do livro.
- `nome` (string): Nome do livro.
- `nomeDoAutor` (string): Nome do autor do livro.
- `lancamento` (inteiro): Ano de lançamento da primeira versão do livro.
- `numEdicao` (inteiro): Número da edição do livro.
- `tipo` (string): Tipo do livro (livro, mangá, hq...).
- `genero` (string): Genero do livro.
- `editora` (string): Nome da editora.
- `anoEdicao` (inteiro): Ano de lançamento da edição.
- `numEdicao` (inteiro): Numero da edição.

## ⚙️ Uso da API

A API pode ser usada para:

- Listar todos os livros no catálogo.
- Adicionar um novo livro ao catálogo.
- Recuperar detalhes de um livro específico com base no ID.
- Recupera detalhes de livros com base em seu nome, nome do autor, genero, tipo ou editora
- Atualizar informações de um livro existente.
- Excluir um livro específico do catálogo.

## 💻 Como Executar o Projeto

Siga estas etapas para configurar e executar a API em seu ambiente:

1. Clone este repositório:

```shell
git clone https://seurepositorio.git
```
2. Navegue até o diretório do projeto:

```shell
cd nomedoprojeto/
```
3. Crie e ative um ambiente virtual:

```shell
python -m venv venv
source venv/bin/activate # No Windows, use 'venv\Scripts\activate'
```
4. Instale as dependências:

```shell
pip install -r requirements.txt
```
5. Execute as migrações do banco de dados:

```shell
python manage.py migrate
```
6. Inicie o servidor de desenvolvimento:

```shell
python manage.py runserver
```

A API estará acessível em http://localhost:8000/.

## 🌐 Exemplo de Solicitação

### Criar um Novo Livro

Método: POST
URL: http://localhost:8000/livro/

### Corpo da Solicitação:

```json
{
"id":1,
"nome": "Nome do Livro",
"nomeDoAutor": "Nome do Autor",
"lancamento": 2023,
"tipo": "Livro",
"genero": "Genero do Livro",
"editora": "Editora do Livro",
"anoEdicao": 2018,
"numEdicao": 1
}
```

## 🙏 Contribuição:

Contribuições são bem-vindas! Sinta-se à vontade para enviar problemas, solicitações de pull e feedback.