Sign inSign up

hassegawa/biblia-api

By hassegawa

•Updated 11 months ago

sistema de api para versículos bíblico

Image
0

5.6K

hassegawa/biblia-api repository overview

⁠Bíblia API

API REST para consulta de versículos bíblicos, leitura diária e sorteio de versículos, baseada em FastAPI e SQLite.

⁠Como executar em docker

  • docker run -d -p 8000:8000 hassegawa/biblia

Github⁠

⁠Como usar com Docker Compose

  1. Crie o arquivo docker-compose.yml na raiz do projeto:

    version: '3.8'
    services:
      biblia-api:
        build: .
        container_name: biblia-api
        ports:
          - "8000:8000"
        volumes:
          - .:/app
        environment:
          - TZ=America/Sao_Paulo
    
  2. Crie o arquivo Dockerfile na raiz do projeto:

    FROM python:3.11-slim
    
    WORKDIR /app
    
    COPY requirements.txt .
    RUN pip install --no-cache-dir -r requirements.txt
    
    COPY . .
    
    EXPOSE 8000
    
    CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
    
  3. Crie o arquivo requirements.txt (se ainda não existir):

    fastapi
    uvicorn
    
  4. Certifique-se de que o arquivo do banco de dados nvi.db e o arquivo daily.json estejam na raiz do projeto.

  5. Suba o serviço:

    docker-compose up --build
    

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


⁠Endpoints da API

⁠1. Listar todos os livros
GET /

Resposta:

{
  "books": [
    {
      "id": 1,
      "name": "Gênesis",
      "abbrev": "gn",
      ...
    },
    ...
  ]
}

⁠2. Buscar versículo(s)
GET /verse?book=Gênesis&chapter=1&verse=1

Parâmetros:

  • book (opcional): Nome do livro
  • chapter (opcional): Número do capítulo
  • verse (opcional): Número do versículo
  • endverse (opcional): Número do último versículo (para intervalo)

Resposta:

{
  "verse": [
    {
      "name": "Gênesis",
      "chapter": 1,
      "verse": 1,
      "text": "No princípio criou Deus os céus e a terra."
    }
  ]
}

⁠3. Versículo do dia
GET /daily

Retorna o(s) versículo(s) correspondente(s) ao dia atual, conforme definido em daily.json.


⁠4. Versículo do dia (formato mensagem)
GET /today

Retorna o(s) versículo(s) do dia em formato de mensagem única.


⁠5. Versículo aleatório
GET /random

Retorna um versículo aleatório da lista daily.json.


⁠6. Checar integridade dos versículos do dia
GET /check

Retorna uma lista de itens de daily.json que não foram encontrados no banco de dados.


⁠Observações

  • Certifique-se de que os arquivos nvi.db (banco SQLite) e daily.json estejam presentes na raiz do projeto.
  • Para acessar a documentação interativa da API, acesse http://localhost:8000/docs⁠ após subir o container.

Github⁠

Tag summary

Content type

Image

Digest

sha256:060c47edd…

Size

26.7 MB

Last updated

11 months ago

docker pull hassegawa/biblia-api