larnu-bootcamp / devs_portal_backend

https://larnu-devs-portal.onrender.com/api-docs/
4 stars 0 forks source link

definir API contracts #3

Closed josseed closed 2 years ago

josseed commented 2 years ago

se tiene que definir todos los endpoints necesarios para que la aplicación funcione

la definición corresponde a cómo estos deben ser llamados, cómo responden y cómo pueden fallar

Ejemplo:

https://www.some-url.com/devs GET

response: [
  {
    "id": 1,
    "firstName": "Elis",
    ...
  },
  ...
]
josseed commented 2 years ago

@rvelascomosquera @isavalenzuela

rvelascomosquera commented 2 years ago

Login GET router.get('{hostname}/larnu/login', formLogin);

Returns the specified user.

URL Params
None
Data Params
None

Headers
    GET /larnu/login 
    host: {hostname}
    Content-Type: application/json
    Authorization: Bearer <OAuth Token>
Success Response:
    Code: 200
    Content: { /larnu/login }
Error Response:
    Code: 500
    Content: { error : "Internal Server Error" }

Login POST router.post('{hostname}/larnu/login', authenticateLogin);

Returns the specified user.

URL Params
None
Data Params
response: [{
"email": "usuario1@correo.com",
"password": "1234567",
"Token": "2022171011055"
}]

Headers
    POST /larnu/login 
    host: {hostname}
    Content-Type: application/json
    Authorization: Bearer <OAuth Token>
Success Response:
    Code: 200
    Content: { <user_object> }
Error Response:
    Code: 404
    Content: { error : "User doesn't exist" }
    OR
    Code: 401
    Content: { error : error : "You are unauthorized to make this request." }
Code: 500
    Content: { error : "Internal Server Error" }
josseed commented 2 years ago

@rvelascomosquera @isavalenzuela tienen varias cosas bien, lo que hay que sacar es el endpoint GET de login ya que no hace sentido

si quieren tener un endpoint para obtener al usuario logeado, podría ser algo así como {url}/profile pero creo que no hay ninguna vista que requiera esa información

lo otro es que esto no debe tener lógica aún y con eso me refiero a esto -> router.post('{hostname}/larnu/login', authenticateLogin);

solo debería ser la url y el path ej: {url}/auth/login

el endpoint POST de login pide el header de auth lo cual no debería ser debido a que es el endpoint para logearse.

isavalenzuela commented 2 years ago

Hola, envío nuestros avances @rvelascomosquera sobre la documentación de la API, utilizamos Swagger para generarla (https://editor.swagger.io/)

Documentacion_Api (1).txt

(no me dejó subir el archivo como .yaml)

rvelascomosquera commented 2 years ago

Buenos dias @josseed , nos permitimos con @isavalenzuela adjuntar el archivo con las correcciones sobre la documentacion de la api creemos que ya esta el 100%.

docApiLarnUDev.txt