amandagpearce / google-image-service

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Google Image Service

Projeto criado como componente D do MVP da disciplina de Back-end avançado do curso de pós-graduação em Desenvolvimento Full Stack da PUC-Rio.

O que é?

API Rest que utiliza a Google's Programmable Search Engine da API Custom Search para buscar uma imagem da obra de arte referenciada pelo filme ou série, de acordo com o cadastro realizado no front-end.

Arquivo .env

Primeiramente é necessário gerar uma API Key como descrito na documentação. Com a API Key e a search engine ID criadas, crie um arquivo .env que irá conter essas informações, como no exemplo abaixo:

PROGRAMMABLE_SEARCH_ENGINE_API_KEY="suakey"
SEARCH_ENGINE_ID="suaid"
  • Substitua suakey e suaid pelos seus dados. Após a criação da API Key, os dados podem ser conferidos e obtidos no painel da Google.

Instalação com Docker

  1. Clone o projeto
  2. Cole na raiz do projeto o arquivo .env preenchido, como descrito na seção anterior
  3. Na raiz do projeto, rode o seguinte comando para criar a imagem:
  docker build -t g-arts-service .
  1. Rode a imagem criada:
  docker run -p 9000:9000 g-arts-service
  1. Acesse a documentação no Swagger em http://localhost:9000/doc

Instalação sem Docker

  1. Clone o projeto
  2. Cole na raiz do projeto o arquivo .env preenchido, como descrito na seção anterior
  3. Crie e ative um ambiente virtual
  4. Na raiz do projeto, faça a instalação das dependências com o comando:
  pip install requirements.txt
  1. Na raiz do projeto, rode o projeto com o seguinte comando:
  flask run --host 0.0.0.0 --port 9000
  1. Acesse a documentação no Swagger em http://localhost:9000/doc

Banco de dados

A aplicação gerencia um banco de dados sqlite com a seguinte tabela:

Field Name Data Type Description
id Integer Primary Key
artworkTitle String Título da Obra de Arte
imageUrl String URL da Imagem da Obra de Arte
artist String Nome do Artista
  • imageUrl é o que é retornado da pesquisa no Google Images.

Licensa e critérios de busca de imagem

A busca de imagens é realizada através de uma query contendo artwork_title e artwork_artist que são enviados no request da componente B - Art refs api. A imagem retornada obedece aos critérios da licensa Creative Commons como definido nos argumentos de busca do script:

  search_params = {
        "q": query,
        "num": 1,  # Number of images to fetch
        "safe": "high",  # Safety level (options: high, medium, off)
        "fileType": "jpg|png",  # Limit search to JPEG and PNG files
        "size": "large",  # Filter for large images
        "rights": (  # Creative Commons licenses
            "cc_publicdomain|"
            "cc_attribute|"
            "cc_sharealike|"
            "cc_noncommercial|"
            "cc_nonderived"
        ),
    }

About


Languages

Language:Python 96.3%Language:Dockerfile 3.7%