Code Monkey home page Code Monkey logo

marvel-api's Introduction

Coleta de dados com a API da Marvel.

GitHub

Tópicos

Objetivo

Utilizar a API da Marvel para buscar todos os Comics e Characters.

Contexto da solução

Consiste em criar dois serviços em Docker:

  • Container da linguagem de programação Python para conectar com API para buscar, processar e salvar os dados requisitados
  • Container do banco de dados MySQL para salvar os dados processados

Desenho arquitetural da solução

Pré-requisitos

Passos para subir os serviços necessários para o teste

  1. Clonando o repositório por SSH
$ git clone [email protected]:albertosilvabr/marvel-api.git
  1. Iniciando os serviçes do MySQL e Python
$ cd marvel-api
$ make start-services
  1. Check se os serviços foram iniciandos
$ docker ps

output:
CONTAINER ID   IMAGE               COMMAND                  CREATED          STATUS      PORTS                   NAMES
d772b479a064   marvel-api_python   "python3"                14 minutes ago   Up 14 min.                          python
f6f37f692661   mysql:latest        "docker-entrypoint.s…"   14 minutes ago   Up 14 min.  0.0.0.0:3306->3306/tcp  mysql
  1. Buscando os dados de Characters e Comics
$ make get-data-marvel-api

Neste passo será solicitado a public key e private key necessárias para requisitar os dados via API. Veja como consegui-las em: (https://developer.marvel.com/account)

Entre com sua public key:

Após informar a public key e private key, as seguintes etapas serão executadas

Step 1: Criando tabelas Characters e Comics
        Tabelas criadas com sucecesso!

Step 2: Buscando dados de Characters
        Busca realizada com sucesso!

Step 3:  Buscando dados de Comics
         Busca realizada com sucesso!

Step 4: Criando a tabela OBT
        Tabela OBT criada com sucesso!


Processo finalizado com sucesso!
  1. Consultando os dados salvosdas tabelas criadas no banco MySQL através do CLI
  • Acessando o MySQL CLI
$ make mysql-cli 
  • Login para executar query via linha de comando, informe este password rootpass quando solicitado
bash-4.4# mysql -u root -p
Enter password:
  • Listando os bancos de dados
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| marveldb           |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)
  • Selecionando o banco de dados marveldb
mysql> USE marveldb;
  • Consultando os dados da tabela Characters;
mysql> SELECT id, name FROM characters LIMIT 4;
+---------+--------------+
| id      | name         |
+---------+--------------+
| 1011334 | 3-D Man      |
| 1017100 | A-Bomb (HAS) |
| 1009144 | A.I.M.       |
| 1010699 | Aaron Stack  |
+---------+--------------+
4 rows in set (0.00 sec)
  • Consultando os dados da tabela Comics;
mysql> SELECT id, title FROM comics LIMIT 4;
+-------+--------------------------+
| id    | title                    |
+-------+--------------------------+
| 82967 | Marvel Previews (2017)   |
| 82965 | Marvel Previews (2017)   |
| 82970 | Marvel Previews (2017)   |
| 37504 | Marvels Vol. 1 (1994) #7 |
+-------+--------------------------+
4 rows in set (0.00 sec)
  • Consultando os dados da tabela OBT
mysql> SELECT character_id
            , MID(character_description,1,30) AS character_description
            , comic_id
            , MID(title_comic,1,30) AS title_comic 
            , format_comic 
         FROM  obt_marvel LIMIT 2;
+--------------+-----------------------+----------+----------------------+------------------------+
| character_id | character_description | comic_id | title_comic          | format_comic           |
+--------------+-----------------------+----------+----------------------+------------------------+
|      1009144 | AIM is a terrorist o  |   103371 | Avengers Unlimited I | Digital Vertical Comic |
|      1009368 | Wounded, captured an  |   103371 | Avengers Unlimited I | Digital Vertical Comic |
+--------------+-----------------------+----------+----------------------+------------------------+
2 rows in set (0.00 sec)

marvel-api's People

Contributors

albertosilvabr avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.