Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Project to find the best developers in the job market.

License

NotificationsYou must be signed in to change notification settings

muriloalvesdev/github-developers

Repository files navigation

Build Status

GitHub Developers API

License

Apache License 2.0

Tecnologias

  • Spring Boot - Framework de Desenvolvimento para a Linguagem Java.

  • Lombok - Biblioteca Java focada em produtividade e redução de código boilerplate que, por meio de anotações adicionadas ao nosso código, ensinamos o compilador (maven ou gradle) durante o processo de compilação a criar código Java.

  • JUnit5 - Framework facilita a criação e manutenção do código para a automação de testes com apresentação dos resultados.

  • Mockito - Estrutura de teste de código aberto para Java liberada sob a licença MIT. A estrutura permite a criação de objetos duplos de teste em testes de unidade automatizados com o objetivo de desenvolvimento orientado a teste ou desenvolvimento orientado a comportamento.

  • PostgreSQL - Banco de dados.

  • Hibernate - Framework para persistência de dados. (ORM)

  • JPA - Especificação do Java que dita como os Frameworks ORM devem ser implementados.

  • Docker - Plataforma open source que facilita a criação e administração de ambientes isolados. Ele possibilita o empacotamento de uma aplicação ou ambiente dentro de um container, se tornando portátil para qualquer outro host que contenha o Docker instalado.

  • Swagger - Essencialmente uma linguagem de descrição de interface para descrever APIs RESTful expressas usando JSON.

Para compilar e executar o projeto você precisa ter instalado

  • Maven - Ferramenta de automação de compilação utilizada primariamente em projetos Java.
  • Docker - Execução de aplicativos de containers.

Instalação

  • Clone o projeto:$https://github.com/muriloalvesdev/github-developers.git
  • Após concluir o Download do projeto, acesse o diretório do mesmo:$cd github-developers/
OBS: Sobre a instalação existem duas formas, abaixo está o passo a passo, sobre como realizar este procedimento. Mas caso você queira instalar rapidamente o projeto, basta executar o script contido na raiz do projeto: $./docker-run.sh

Instando dependências e executando os testes com Maven:

  • Para instalar as dependências e executar os testes, utilize o comando:$mvn clean package

Docker - Construindo a aplicação

  • Execute o script$./docker-run.sh para construir a aplicação.Este script compila o projeto com o profile dePROD, cria uma imagem Docker da aplicação e por fim utiliza oDocker Compose para baixar a imagem do PostgreSQL (banco de dados) e sobe a aplicação.
  • Após executar o script você ja deve ter a aplicação sendo executada.
OBS: O projeto é executado na porta 8080 e o banco de dados é executado na porta 5432, verifique se essas portas estão disponíveis caso ocorra algum erro. Tenha certeza de que você está com o Docker e o Maven instalados para que você não tenha problemas ao compilar, testar e executar a aplicação.

Ainda com Docker - Deixei a imagem disponível para Download noDockerHub

Caso você queira apenas baixar a imagem e executar a aplicação, basta seguir os passos abaixo:OBS: Você precisa ter o PostgreSQL pré instalado com um database chamado "github_developers" .

  • Baixe a imagem Docker, utilizando o comando:$docker pull muriloalvesdev/github_developers
  • Execute o comando$docker run <id_imagem> para executar o container.
  • E agora você ja deve ter a aplicação sendo executada.

Consumindo a aplicação com Swagger

  • Caso você queira apenas consumir as APIs do projeto, ele está hospedado noHeroku.
  • A URL da aplicação com o Swagger é esta:https://github-developers.herokuapp.com/swagger-ui.html

APIs do GitHub:

Endpoints:

  • Você pode buscar por repositórios:/search/repositories

  • Response padrão [exemplo]:

Status: 200 OK
{  "total_count": 40,  "incomplete_results": false,  "items": [    {      "id": 3081286,      "node_id": "MDEwOlJlcG9zaXRvcnkzMDgxMjg2",      "name": "Tetris",      "full_name": "dtrupenn/Tetris",      "owner": {        "login": "dtrupenn",        "id": 872147,        "node_id": "MDQ6VXNlcjg3MjE0Nw==",        "avatar_url": "https://secure.gravatar.com/avatar/e7956084e75f239de85d3a31bc172ace?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png",        "gravatar_id": "",        "url": "https://api.github.com/users/dtrupenn",        "received_events_url": "https://api.github.com/users/dtrupenn/received_events",        "type": "User",        "html_url": "https://github.com/octocat",        "followers_url": "https://api.github.com/users/octocat/followers",        "following_url": "https://api.github.com/users/octocat/following{/other_user}",        "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",        "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",        "subscriptions_url": "https://api.github.com/users/octocat/subscriptions",        "organizations_url": "https://api.github.com/users/octocat/orgs",        "repos_url": "https://api.github.com/users/octocat/repos",        "events_url": "https://api.github.com/users/octocat/events{/privacy}",        "site_admin": true      },      "private": false,      "html_url": "https://github.com/dtrupenn/Tetris",      "description": "A C implementation of Tetris using Pennsim through LC4",      "fork": false,      "url": "https://api.github.com/repos/dtrupenn/Tetris",      "created_at": "2012-01-01T00:31:50Z",      "updated_at": "2013-01-05T17:58:47Z",      "pushed_at": "2012-01-01T00:37:02Z",      "homepage": "https://github.com",      "size": 524,      "stargazers_count": 1,      "watchers_count": 1,      "language": "Assembly",      "forks_count": 0,      "open_issues_count": 0,      "master_branch": "master",      "default_branch": "master",      "score": 1,      "archive_url": "https://api.github.com/repos/dtrupenn/Tetris/{archive_format}{/ref}",      "assignees_url": "https://api.github.com/repos/dtrupenn/Tetris/assignees{/user}",      "blobs_url": "https://api.github.com/repos/dtrupenn/Tetris/git/blobs{/sha}",      "branches_url": "https://api.github.com/repos/dtrupenn/Tetris/branches{/branch}",      "collaborators_url": "https://api.github.com/repos/dtrupenn/Tetris/collaborators{/collaborator}",      "comments_url": "https://api.github.com/repos/dtrupenn/Tetris/comments{/number}",      "commits_url": "https://api.github.com/repos/dtrupenn/Tetris/commits{/sha}",      "compare_url": "https://api.github.com/repos/dtrupenn/Tetris/compare/{base}...{head}",      "contents_url": "https://api.github.com/repos/dtrupenn/Tetris/contents/{+path}",      "contributors_url": "https://api.github.com/repos/dtrupenn/Tetris/contributors",      "deployments_url": "https://api.github.com/repos/dtrupenn/Tetris/deployments",      "downloads_url": "https://api.github.com/repos/dtrupenn/Tetris/downloads",      "events_url": "https://api.github.com/repos/dtrupenn/Tetris/events",      "forks_url": "https://api.github.com/repos/dtrupenn/Tetris/forks",      "git_commits_url": "https://api.github.com/repos/dtrupenn/Tetris/git/commits{/sha}",      "git_refs_url": "https://api.github.com/repos/dtrupenn/Tetris/git/refs{/sha}",      "git_tags_url": "https://api.github.com/repos/dtrupenn/Tetris/git/tags{/sha}",      "git_url": "git:github.com/dtrupenn/Tetris.git",      "issue_comment_url": "https://api.github.com/repos/dtrupenn/Tetris/issues/comments{/number}",      "issue_events_url": "https://api.github.com/repos/dtrupenn/Tetris/issues/events{/number}",      "issues_url": "https://api.github.com/repos/dtrupenn/Tetris/issues{/number}",      "keys_url": "https://api.github.com/repos/dtrupenn/Tetris/keys{/key_id}",      "labels_url": "https://api.github.com/repos/dtrupenn/Tetris/labels{/name}",      "languages_url": "https://api.github.com/repos/dtrupenn/Tetris/languages",      "merges_url": "https://api.github.com/repos/dtrupenn/Tetris/merges",      "milestones_url": "https://api.github.com/repos/dtrupenn/Tetris/milestones{/number}",      "notifications_url": "https://api.github.com/repos/dtrupenn/Tetris/notifications{?since,all,participating}",      "pulls_url": "https://api.github.com/repos/dtrupenn/Tetris/pulls{/number}",      "releases_url": "https://api.github.com/repos/dtrupenn/Tetris/releases{/id}",      "ssh_url": "git@github.com:dtrupenn/Tetris.git",      "stargazers_url": "https://api.github.com/repos/dtrupenn/Tetris/stargazers",      "statuses_url": "https://api.github.com/repos/dtrupenn/Tetris/statuses/{sha}",      "subscribers_url": "https://api.github.com/repos/dtrupenn/Tetris/subscribers",      "subscription_url": "https://api.github.com/repos/dtrupenn/Tetris/subscription",      "tags_url": "https://api.github.com/repos/dtrupenn/Tetris/tags",      "teams_url": "https://api.github.com/repos/dtrupenn/Tetris/teams",      "trees_url": "https://api.github.com/repos/dtrupenn/Tetris/git/trees{/sha}",      "clone_url": "https://github.com/dtrupenn/Tetris.git",      "mirror_url": "git:git.example.com/dtrupenn/Tetris",      "hooks_url": "https://api.github.com/repos/dtrupenn/Tetris/hooks",      "svn_url": "https://svn.github.com/dtrupenn/Tetris",      "forks": 1,      "open_issues": 1,      "watchers": 1,      "has_issues": true,      "has_projects": true,      "has_pages": true,      "has_wiki": true,      "has_downloads": true,      "archived": true,      "disabled": true,      "license": {        "key": "mit",        "name": "MIT License",        "url": "https://api.github.com/licenses/mit",        "spdx_id": "MIT",        "node_id": "MDc6TGljZW5zZW1pdA==",        "html_url": "https://api.github.com/licenses/mit"      }    }  ]}
  • Você também pode buscar por usuários:/search/users
  • Response padrão [exemplo]:
Status: 200 OK
{  "total_count": 12,  "incomplete_results": false,  "items": [    {      "login": "mojombo",      "id": 1,      "node_id": "MDQ6VXNlcjE=",      "avatar_url": "https://secure.gravatar.com/avatar/25c7c18223fb42a4c6ae1c8db6f50f9b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png",      "gravatar_id": "",      "url": "https://api.github.com/users/mojombo",      "html_url": "https://github.com/mojombo",      "followers_url": "https://api.github.com/users/mojombo/followers",      "subscriptions_url": "https://api.github.com/users/mojombo/subscriptions",      "organizations_url": "https://api.github.com/users/mojombo/orgs",      "repos_url": "https://api.github.com/users/mojombo/repos",      "received_events_url": "https://api.github.com/users/mojombo/received_events",      "type": "User",      "score": 1,      "following_url": "https://api.github.com/users/mojombo/following{/other_user}",      "gists_url": "https://api.github.com/users/mojombo/gists{/gist_id}",      "starred_url": "https://api.github.com/users/mojombo/starred{/owner}{/repo}",      "events_url": "https://api.github.com/users/mojombo/events{/privacy}",      "site_admin": true    }  ]}

[8]ページ先頭

©2009-2025 Movatter.jp