Skip to content

manoelcastillo/GIT-Stars

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Construindo uma API Rest para consultar repositorios com Stars

A solução apresentada foi elaborada em Go usando Gorila Mux para rotear os endpoints e o MongoDB como banco de dados de documentos e seguindo a metodologia TDD (test-driven methodology). Foi pensada para ser fault tolerant e atuar como uma solução de backend.

Objetivos

  • Aprender e ficar proficiente em Go
  • Estudo e uso de um banco de dados NoSQL
  • Aprender a suar MongoDB e Go implemnentando uma API Rest

Requisitos

  • Binários Go instalados e configurados.
    • Windows: download
    • Linux:
      ubuntu@usr$ sudo add-apt-repository ppa:longsleep/golang-backports
      ubuntu@usr$ sudo apt-get update
      ubuntu@usr$ sudo apt-get install golang-go
  • MongoDB instalado e rodando como serviço na porta default 27017
    • Windows: download
    • Linux:
      ubuntu@usr$ sudo apt update
      ubuntu@usr$ sudo apt install -y mongodb

Dependências Go

Antes de rodar a aplicação, tendo todos os requisitos, devemos baixar as dependências do projeto

  • gorillaz mux:
    $ go get github.com/gorilla/mux
  • mongoDB driver:
    $ go get go.mongodb.org/mongo-driver/mongo

Ferramentas de desenvolvimento

A solução foi desenvolvida em ambiente Windows usando as seguintes ferramentas:

OpenAPI

A API foi descrita usando a especificação OpenAPI 3 no formato YAML. O arquivo openapi.yaml pode ser validado com a ferramenta Swagger por exemplo.

Rodando os testes

Os Testes foram feitos apenas para as funções handler, que servem os requests dos endpoints. Os testes são simples, levando apenas em consideração os código de retorno http.

$ go test -timeout 30 GIT-Stars/handler

Rodando o BackEnd

Na pasta raiz do projeto:

$ go build
$ ./GIT-Stars

Para testar basta fazer as requests para os endpoints em http://localhost:8000 via brower/curl ou com a ferramenta PostMan

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages