A API do backend é um recurso Node.js-based para comunicar com o DevRadar. Você pode usa-la para acessar data e definir certas propriedades para usuários.
Esta foi criada para servir à 10ª Semana da Omnistack desenvolvida pela Rocketseat.
O Backend foi desenvolvido pensando-se no conceito DRY (Don't Repeat Yourself) e arquitetura MVC.
Este é o Model de Usuários (No caso da Omnistack, os Devs)
{
"_id": "<UID Aleatório>",
"github": "<User do GitHub>",
"name": "<Nome do usuário>",
"bio": "<Descrição>",
"avatar_url": "<GitHub's Avatar URL>",
"techs": [ "<Vetor>", "<de>", "<Tecnologias>" ],
"location": {
"coordinates": [
<Longitude>,
<Latitude>
]
},
"__v": <Qnt. de updates>
}
Aqui estão listados os controles da API do DevRadar, seus métodos, parâmetros e estrutura.
Os Devs são os usuários do programa.
Este controlador serve para listar usuários porém em modo de pesquisa.
Com este módulo é possível procurar por usuários em um raio de 10km e com techs específicas.
Método | Estrutura | Ação | Parâmetros | Retorno |
---|---|---|---|---|
/api/search |
Pesquisa usuários | Query/techs,latitude,longitude | JSON/Usuários |
GET /api/devs HTTP/1.1
HTTP/1.1 200 OK
{
"devs": [
{
"techs": [
"Java",
"ReactJS",
"Node.js"
],
"_id": "5e1dedc2ba895700505a1b5a",
"github": "robsantossilva",
"name": "Robson Silva",
"avatar_url": "https://avatars1.githubusercontent.com/u/16140783?v=4",
"bio": "I'm a Student and a Java enthusiast. Started programming around 10 years old.",
"location": {
"coordinates": [
-45.8870291,
-23.2480525
],
"_id": "5e1dedc2ba895700505a1b5b",
"type": "Point"
},
"__v": 0
},
...
]
}
POST /api/devs HTTP/1.1
HTTP/1.1 200 OK
{
"techs": [
"Java",
"ReactJS",
"Node.js"
],
"_id": "5e1dedc2ba895700505a1b5a",
"github": "robsantossilva",
"name": "Robson Silva",
"avatar_url": "https://avatars1.githubusercontent.com/u/16140783?v=4",
"bio": "I'm a Student and a Java enthusiast. Started programming around 10 years old.",
"location": {
"coordinates": [
-45.8870291,
-23.2480525
],
"_id": "5e1dedc2ba895700505a1b5b",
"type": "Point"
},
"__v": 0
}
GET /api/devs/robsantossilva HTTP/1.1
HTTP/1.1 200 OK
{
"techs": [
"Java",
"ReactJS",
"Node.js"
],
"_id": "5e1dedc2ba895700505a1b5a",
"github": "robsantossilva",
"name": "Robson Silva",
"avatar_url": "https://avatars1.githubusercontent.com/u/16140783?v=4",
"bio": "I'm a Student and a Java enthusiast. Started programming around 10 years old.",
"location": {
"coordinates": [
-45.8870291,
-23.2480525
],
"_id": "5e1dedc2ba895700505a1b5b",
"type": "Point"
},
"__v": 0
}
PUT /api/devs/robsantossilva HTTP/1.1
{
"techs": "Java, React, Node.js, CSS",
"github": "este_campo_nao_deve_fazer_nenhuma_alteracao_no_user"
}
HTTP/1.1 200 OK
{
"modifiedCount": 1,
"ok": 1
}
DELETE /api/devs/robsantossilva HTTP/1.1
HTTP/1.1 200 OK
GET /api/search?techs=ReactJS,Node.JS&latitude=-23.2480525&longitude=-45.8870291 HTTP/1.1
HTTP/1.1 200 OK
{
"devs": [
{
"techs": [
"Java",
"React",
"Node.js"
],
"_id": "5e1dca792f10d12e3490a9f2",
"github": "robsantossilva",
"name": "Robson Silva",
"avatar_url": "https://avatars1.githubusercontent.com/u/16140783?v=4",
"bio": "I'm a Student and a Java enthusiast. Started programming around 10 years old.",
"location": {
"coordinates": [
-45.8870291,
-23.2480525
],
"_id": "5e1dca792f10d12e3490a9f3",
"type": "Point"
},
"__v": 0
},
...
]
}