Errores de diseño que perjudican tu API REST

Поделиться
HTML-код
  • Опубликовано: 30 июл 2024
  • Hay muchas formas de cometer errores al crear APIs REST, pero no todas son igual de sutiles. En este vídeo te cuento cinco malas prácticas de las que debe estar pendiente si quieres tener una API de mejor calidad.
    0:00 Introducción a las APIs REST
    2:01 (Común) 1. Usa bien el código de retorno
    4:03 (Común) 2. Usa bien el verbo de la petición
    6:48 (✨ Raro) 3. No devuelvas arrays
    8:28 (✨ Raro) 4. Recuerda paginar
    10:45 (✨ Raro) 5. No reinventes cabeceras HTTP
    12:06 Cierre
    🔔 ¡Suscríbete ya! ruclips.net/user/makigas?sub_confi...
    ➕ Más tutoriales en: www.makigas.es
    ⭐ Programa de miembros: youtube.com/@makigas/join
    📝 Foros de la comunidad: foro.makigas.es
    💬 Servidor de Discord: discord.makigas.es

Комментарии • 58

  • @Chemaclass
    @Chemaclass Год назад +9

    Molan mucho estos vídeos donde tratas un tema concreto y das pinceladas de realidad, especialmente para los que están empezando en el sector. Sigue así!

    • @makigas
      @makigas  Год назад +3

      Se trata de compartir todas mis cagadas, que no son pocas, para que no sigan mi ejemplo ;)

  • @haroldpepete
    @haroldpepete Год назад +4

    otro dato importante es comprobar que la cantidad de registros que estan solicitando no exceda el limite maximo de registros por peticion, porque algunas apis no controlan ese limite y clientes maliciosos dentro de su peticion pueden sobreescribir ese parametro en el querystring y sobrecargar tu servidor con consultas que devuelvan demasiados registros

  • @manuelvega.
    @manuelvega. Год назад

    Que buen video y que bien explicado. Felicitaciones Dani!

  • @wineloy
    @wineloy Год назад +3

    Ahora si le encuentro sentido que muchas Apis envuelvan las listas en un atributo "data"
    Grande Crack!

  • @orlandodeabreu9167
    @orlandodeabreu9167 Год назад

    Excelente y conciso.

  • @compartelo007
    @compartelo007 Год назад

    Gracias por los consejos, todos super útiles y además necesarios.

  • @edualdansarmientog.4180
    @edualdansarmientog.4180 Год назад

    Excelentes consejos. Estoy muy de acuerdo con los puntos que tocaste.

  • @leofabioFAC
    @leofabioFAC Год назад

    Gracias por compartir tu experiencia

  • @victorbarahona5528
    @victorbarahona5528 Год назад

    que buen video, gracias por compartir tu conocimiento y experiencia

  • @enfermatorio
    @enfermatorio Год назад

    ¡Buen vídeo!

  • @Frest99
    @Frest99 Год назад +1

    Muy bueno, me quedo con lo de meter el array dentro de un Json, no lo había pensado

  • @jeycode9180
    @jeycode9180 Год назад

    Grande Dani, con tu estilo!

  • @mddx56
    @mddx56 Год назад

    buenos consejos para alguien que esta comenzando en este mundo gracias

  • @tanacing347
    @tanacing347 Год назад

    Gracias!

  • @claveralvaro6245
    @claveralvaro6245 Год назад

    Consejazos se avienta este sujeto . Gran canal, sigue así. * c suscribe *

  • @nxx.p
    @nxx.p Год назад

    Muy bueno :)

  • @EnchantWolf
    @EnchantWolf Год назад +1

    Increible amigo, son de los mejores consejos, principalmente la paginacion, eso es algo que veo a diario en m itrabajo, como otros programadores lo ignoran por completo y terminan luego enviando 2k de registros en poco tiempo, y entonces alli se preguntan, Como lo pagino? y hay que rehacer muchas cosas cuando es asi, tanto del lado back como del lado front.

  • @ftwtf
    @ftwtf Год назад

    Buen video! esta info debería ser más reconocida, yo el año pasado caí en un proyecto de una API desde cero para una administración pública y menuda fiesta.
    En mi empresa hacen esto que comentas en 3:17 (http code 200 para todo). La razón exacta por la que lo quieren así no la sé, pero es una aplicación que consume un montón de APIs externas y ya monitoriza internamente esas subllamadas. Deduzco que es por organización de trazas de logs...
    Otra empresa en la que estuve recuerdo que para obtener documentos sensibles no usaban GET, ya que necesitaban mandar varios parámetros sensibles en el body del POST. es un escenario a tener en cuenta.
    Me gustaría también mencionar otro error poco común. Y es el de no trocear las subida de ficheros! (ficheros grandes evidentemente)
    Un saludo master!

  • @eGustavoIT
    @eGustavoIT Год назад +1

    Sos un crack man

  • @JhonyHDV
    @JhonyHDV Год назад

    Buen video

  • @videovideo166
    @videovideo166 Год назад

    bien dicho!!

  • @marcelodf12
    @marcelodf12 Год назад +1

    Sobre el punto de encapsular un array en un objeto. Para enviar metadata como la paginación, una opción es enviársela en el response header.

  • @1985stout
    @1985stout Год назад

    Gracias

  • @yeirodriv17
    @yeirodriv17 Год назад

    thanks, it actually let me through so i could download it.

  • @miguel.sanjurjo
    @miguel.sanjurjo Год назад +1

    Negro sobre blanco. Cualquiera que haya trabajado con APIs REST se habrá encontrado tarde o temprano con contratiempos por haber consumido servicios con alguno de los problemas que mencionas (o necesitar modificar un API propia con estos mismos problemas). Buenos consejos!

  • @julianeduardoaguirre9366
    @julianeduardoaguirre9366 Год назад

    Excelente

  • @aaronvigil8480
    @aaronvigil8480 Год назад +4

    Gracias algoritmo de youtube por presentarme este video. Suscripto.

    • @makigas
      @makigas  Год назад +4

      Eso es que estoy dándole al algoritmo lo que quiere. Welcome! 🚀

    • @aaronvigil8480
      @aaronvigil8480 Год назад +2

      @@makigas dale de comer a ese maldito, jajajaja. Buen video.

  • @RichardAPalaciosG
    @RichardAPalaciosG Год назад

    Muchas gracias por los consejos, estare atento a esas gemas de http que mensionas. Un buen dia.

  • @emanuelsotomayor6474
    @emanuelsotomayor6474 Год назад +1

    El error de no devolver una lista, no lo sabía. ¿Se podría devolver un map luego de modelarlo con los pares clave:valor qué se necesitan?

  • @sarmancoder6488
    @sarmancoder6488 Год назад

    En cuando al punto 4 (paginar), algo curioso es que spotify no página el listado de canciones de las listas de reproducción, es curioso...

  • @jymbo2052
    @jymbo2052 Год назад

    Me hubiera gustado ver algo de código en el video, para que quede más claro lo que intentas explicar, ya que como soy nuevo en esto, no lo tengo tan fácil de visualizar en código.

  • @jemma2607
    @jemma2607 Год назад

    11:55 auténticas Jemmas

  • @MaximoPower2024
    @MaximoPower2024 Год назад

    En el error de los códigos equivocados estaría bien una explicación de qué consecuencias negativas puede tener. Por lo demás, muy buen vídeo.

  • @briangomez8671
    @briangomez8671 Год назад

    Lo de la paginación es un dato clave...

  • @joseramon1017
    @joseramon1017 8 месяцев назад

    👌

  • @galaxiatech8726
    @galaxiatech8726 Год назад +1

    Hola! Tengo una duda, soy nuevo en esto, la arquitectura REST entonces es para crear las API's??

  • @mauricio.ballesteros
    @mauricio.ballesteros Год назад +1

    El 1 y 2 son basicamente mi dia a dia 😅

  • @kevinmendoza9606
    @kevinmendoza9606 Год назад

    Esque ya de por si si no usas las formas que dijiste ya no es una api rest, solo seria una simple api , también esta el api rest full si manejas hateoas

  • @thedevdudeyt
    @thedevdudeyt Год назад

    me toco ver un proyecto donde todas las llamadas eran POST, en todas las apis para todo los request

  • @manusoftar
    @manusoftar Год назад

    Yo en mi trabajo he tenido algunos desacuerdos con mis compañeros porque suelen utilizar el código de respuesta 404 cuando un servicio GET no tiene datos para retornar. Yo considero más apropiado utilizar un código 204 (no content) porque un 404 (not found) podría significar que el frontend no puedo localizar o comunicarse con el endpoint y no necesariamente que el endpoint no trajo resultados.

    • @makigas
      @makigas  Год назад

      Ojo, nunca lo había visto así y me resulta super interesante. Yo hasta ahora sólo uso el 204 en un DELETE y realmente lo hago porque es lo que he visto que recomiendan en muchas APIs. Me gusta la idea.

    • @kevinmendoza9606
      @kevinmendoza9606 Год назад

      Solo uso el 204 cuando uso algún post put o delete y no devuelvo datos

    • @manusoftar
      @manusoftar Год назад +1

      @@kevinmendoza9606 yo uso 200 en esos casos y retorno la cantidad de registros afectados o bien un mensaje reforzando que todo se ejecutó correctamente...

  • @camellomaster
    @camellomaster Год назад

    es erróneo lo que comentas de los códigos 400. dado que toda la lógica se ejecuta correctamente, y digamos por ejemplo un usuario ya se encuentra y no puede ser creado, no corresponde que devuelva algún 400 para indicar un error, ya que los 400 están orientados más a permisos o errores de servidor, sin embargo al hacer mi ejemplo sí se ejecuta todo correctamente, el que exista o no un dato que me satisfaga no está relacionado con el http status.

    • @makigas
      @makigas  Год назад +1

      He entendido cero unidades de información pero te informo que los errores de servidor son los 500, no los 400 como dices, developer.mozilla.org/en-US/docs/Web/HTTP/Status

  • @makigas
    @makigas  Год назад

    ¿Cuál es el error de diseño que has visto alguna vez en una API que te ha hecho decir 'agg' (y que puedas contar, claro)?

    • @sebastiansanchez7177
      @sebastiansanchez7177 Год назад

      aun no! estoy aprendiendo frontend, pero tengo miedo de mandarme un moco grande si trabajo en backend jaja
      gracias por los videos!

    • @michaelgarciaabello4246
      @michaelgarciaabello4246 Год назад +1

      Uso de put para insertar datos en base de datos. No uso del lenguaje de las cabeceras sino creación de uno propio estilo: HEADER_LANGUAGE. Uso de json para devolver los errores, en lugar de devolver en el response un 404 o algo así se devolvia un codigo puntual dentro de un json, pero todas las respuestas eran 200.

    • @jemma2607
      @jemma2607 Год назад

      Cuando trabajas con gente que viene de SOAP y te regresan el status de la petición en un campo xd

    • @nxx.p
      @nxx.p Год назад

      APIs sin documentación

  • @txentxomunuera2771
    @txentxomunuera2771 Год назад

    Anímate que animas ...

  • @cumpaMira
    @cumpaMira Год назад

    Gracias!

  • @ollz3408
    @ollz3408 Год назад

    Gracias!