6 consejos para que DISEÑES BIEN tu API REST

Поделиться
HTML-код
  • Опубликовано: 30 июл 2024
  • Segundo video de esta miniserie sobre REST. Te doy 6 consejos para que tu API REST quede de la mejor manera.
    ¿Qué es REST? • ¿Qué es REST? | Te lo ...
    MIS CURSOS
    🧹 Arquitecturas Limpias para Desarrollo de Software: platzi.com/l/manuelzapata
    📐 Arquitectura de Software: manuelzapata.co/ars
    🔌 Patrones de Diseño: manuelzapata.co/curso-pdd
    📦 Programación Profesional con Objetos (Gratis): manuelzapata.co/objetos
    🌲 Principios de Diseño SOLID (Gratis): manuelzapata.co/mcp
    🙌 Hazte miembro del canal: / @manuelzapata
    🌎 Mi sitio web: manuelzapata.co
    🎦 Suscríbete al canal: manuelzapata.co/suscribete
    📩 Mi lista de correo: manuelzapata.co/lista
    #ManuelZapata #APIREST #Consejos
  • НаукаНаука

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

  • @andresgrisalesgonzalez7704
    @andresgrisalesgonzalez7704 4 года назад +45

    Me gustó mucho el vídeo y me atreveré a decir unas cosas y quizá a alguien más también le sirva (si algo no te parece, por favor dímelo :)
    1. Bajo el método POST siempre deberíamos enviar un cuerpo (Body).
    2. En el ejemplo de /users/1234/favorites, para obtener la colección de favortios utilizamos sobre esa uri el método GET, como dijeste, y si es para agregar un nueva nueva canción (en este caso) a la colección de favoritos de ese usuario 1234, simplemente pasamos bajo el método POST en /users/1234/favorites un body que contenga lo necesario para la operación (por lo general sería simplemente un solo atributo que es el id en este caso de la canción), y ya así tenemos lo necesario para buscar el usuario, la canción, y agregar la canción a los favoritos de ese usuario.
    3. Cuando nos traemos colecciones, en mi opinión, deberiamos siempre recibir un pageable (y tener uno por defecto), que le diga de que tamaño quiere las paginas, y cual quiere. También documentar siempre la API, con swagger, por ejemplo. Usar Loggers, que quede rastro siempre de lo que pase en nuestra API REST.

    • @ManuelZapata
      @ManuelZapata  4 года назад +3

      Tremendo aporte. Totalmente de acuerdo contigo Andrés. Gracias!

    • @mexxiano
      @mexxiano 3 года назад

      Muy bueno! Una consulta: el pageable, por lo que entiendo, estaría relacionado con la paginación de los datos? Y en ese caso, cómo es recomendable pasar esos datos? En el uri o por post? Gracias!

    • @neisservilla7239
      @neisservilla7239 3 года назад

      pregunta: que pasa si necesito incrementar las views de una cancion por ejemplo cada que la obtengo con un metodo GET, al ser el get solo para leer informacion y no escribir debo crear otro endpoint con metodo POST para incrementar las views o si es valido modificar las views cada que se llama ese metodo GET????

    • @andresgrisalesgonzalez7704
      @andresgrisalesgonzalez7704 3 года назад +2

      @@neisservilla7239 Hola, busca sobre algo que se llama Event-Driven Architecture. Lanzas un evento, alguien lo escucha, aumentas el numero de visitas. Es de lo más moderno que hay en el momento.

    • @neisservilla7239
      @neisservilla7239 3 года назад

      @@andresgrisalesgonzalez7704 Muchas gracias por el aporte :D

  • @guillermoreyes5495
    @guillermoreyes5495 4 года назад +19

    "Ya quedó" jajaja, buen checklist Manuel, gracias!

  • @UlfFrostyPaw
    @UlfFrostyPaw 4 дня назад

    Realmente esto me parece curioso y no entiendo pq no me lo han ensñado en la universidad. Gracias por hacerlo un poco más entendible para un simple mortal como yo

  • @jufran_87
    @jufran_87 3 года назад

    Excelentes recomendaciones, muchas gracias

  • @Solidux2
    @Solidux2 3 года назад

    Gracias, super claro

  • @CesarBerrio
    @CesarBerrio 3 года назад

    Excelente presentación! muchas gracias; buen trabajo! muy interesante

  • @Mathias-cq3zo
    @Mathias-cq3zo 3 года назад

    muchas gracias por tu video!! acabo de aprender lo básico de Django REST en un proyecto en la universidad y este video me ha aclarado muchas dudas y, mejor aún, me ha mostrado buenas prácticas para usar en mis proyectos y también por donde seguir aprendiendo sobre API REST. Saludos desde Chile!

  • @EdgarDextre
    @EdgarDextre 3 года назад

    Conciso y con los ejemplos mucho mejor, saludos de Perú Manuel.

  • @jdbaigorria
    @jdbaigorria 3 года назад

    Sos un genio tus explicaciones son sencillas y fácil de seguir.

  • @Colmedoherman
    @Colmedoherman 3 года назад +2

    Excelente! el video que estaba buscando, gracias Manuel 👌🏾 Sería interesante hablar un poco sobre los posibles patterns a utilizar en una API

  • @javiergutierrez6518
    @javiergutierrez6518 9 месяцев назад

    Ha pasado tiempo y sigue siendo el mejor contenido para backend

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

    Excelente video, toda esa información es supervaliosa, muchas gracias.

  • @miguelj.g.9215
    @miguelj.g.9215 3 года назад

    Excelente tu vídeo, muchas gracias por la información.

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

    Excelente contenido ! mil gracias por lo claro, sencillo y buen material que entregas !

  • @CarlosDiaz-wh4jb
    @CarlosDiaz-wh4jb 3 года назад

    Excelente video. Gracias por compartir estas buenas prácticas.

  • @MrAndrewRod
    @MrAndrewRod 3 года назад

    Muchas gracias, excelentes consejos, la verdad jamás me había detenido a pensar en optimizar mi apis de esta forma, sino que meramente me preocupaba por la comunicación de los datos que fuera efectiva y ya. Pero éste video le da una dimensión más organizada para desarrollar un api rest más eficaz y optima. Muchas Gracias !!!

  • @johncerpa3782
    @johncerpa3782 3 года назад

    Muy buenos consejos. Gracias.

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

    Gracias por tus consejos, me ayuda mucho a mejorar y hacerme mejor profesional, pienso que luego de resolver el problema logico es importante hacer las cosas entendibles para los que usaran nuestras soluciones, me gustaria si puedes hacer algo en cuanto a la documentacion de las apis, gracias nuevamente

  • @luisa.diazpaneque5584
    @luisa.diazpaneque5584 2 года назад

    excelente video, recien estoy aprendiendo acerca de este tema y fue muy explicativo y sencillo de entender

  • @jqr0319
    @jqr0319 3 года назад

    Excelente Manuel, muy buen aporte.

  • @josejairomejiasoto3109
    @josejairomejiasoto3109 2 года назад

    Super... que bien...

  • @56f5dbc3
    @56f5dbc3 2 года назад

    Excelente video, gracias

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

    Muy interesante contenido, gracias por compartir

  • @pw4645
    @pw4645 3 года назад

    Gracias Manuel, me sirvio mucho tus consejos

  • @danielpinto5680
    @danielpinto5680 2 года назад

    Excelente video y muy interesante,

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

    Buen video ! y gracias por compartir estos tips, me sirvieron para tenerlo cuenta en el diseño, saludos !

  • @DgarciarDev
    @DgarciarDev 4 года назад +1

    Muy Claro, cositas por arreglar !! Gracias !

    • @ManuelZapata
      @ManuelZapata  4 года назад +1

      De eso se trata. De ir mejorando. Saludos!

  • @adrianvega3148
    @adrianvega3148 3 года назад

    Súper bueno!

  • @alejandro5lmL
    @alejandro5lmL 3 года назад

    Me gustó mucho, de hecho varios de esos errores los aprendí cómo mitos en la escuela y aprendí hasta trabajar como desarrollador. ¿Lo más curioso? Veo aún esos errores en los diseños, así que muchas gracias por recordarme todo esto!

  • @DominiCode
    @DominiCode 3 года назад

    Muchas gracias por compartir 👏

    • @ManuelZapata
      @ManuelZapata  3 года назад

      Con el mayor de los gusto Domini! 💪

  • @carlosvega2055
    @carlosvega2055 3 года назад

    Excelente explicación

  •  3 года назад

    Muy interesantes los consejos

  • @clibercastillo5489
    @clibercastillo5489 4 года назад +1

    Me ayudó bastante, excelente.

    • @ManuelZapata
      @ManuelZapata  4 года назад

      Que bueno Cliber! De eso se trata.

  • @AndresLobaton
    @AndresLobaton 4 года назад

    Muy bien. Gracias

  • @laskalegne
    @laskalegne 2 года назад

    Videos super interesantes!!!!

  • @gudielcobon
    @gudielcobon 4 года назад

    Excelente; estaré al pendiente de tus vídeos.

  • @MrOsnayder
    @MrOsnayder 3 года назад

    Muy chévere estos vidos.!!!! Saludos desde Zipaquirá Cundinamarca

  • @jhonvalencia6902
    @jhonvalencia6902 4 года назад

    Excelente video, muchas gracias.

  • @diegoFolk
    @diegoFolk 4 года назад

    Mil gracias por esta información. Estoy iniciando en Servicios Web y con esto me ayudas mucho.

  • @mikelgalardi2678
    @mikelgalardi2678 2 года назад

    Buen vídeo explicativo Manuel, gracias.

  • @javierherediaruiz6076
    @javierherediaruiz6076 2 года назад

    Excelentes sugerencias. Sigue así, se aprende mucho con vos!!!!

  • @niclorenzo2603
    @niclorenzo2603 4 года назад

    Great video Architect! Thank you.

  • @edwinberrones5570
    @edwinberrones5570 4 года назад +2

    Genial los tips, los voy aplicar al momento de crear mi api, saludos

  • @javiergutierrez6518
    @javiergutierrez6518 3 года назад

    Excelente explicación, no he visto este contenido en otros canales, muchas gracias otra vez

  • @michellev7080
    @michellev7080 4 года назад +3

    Justo lo necesitaba, estoy creando mi primera api rest, muchas gracias

    • @ManuelZapata
      @ManuelZapata  4 года назад +1

      Just in time. Saludos Michelle! 🙌

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

    muy buenos tus videos bro

  • @saufth
    @saufth 3 года назад

    Gracias amigo, fue de mucha ayuda, aclaraste muchas dudas que tenia desde hace mucho

    • @ManuelZapata
      @ManuelZapata  3 года назад

      Excelente Fer. Para eso estamos!

  • @sirwrad
    @sirwrad 4 года назад

    Q genial excelente contenido, me ayudará mucho en mis proximas APIs REST!

    • @ManuelZapata
      @ManuelZapata  4 года назад

      De eso se trata Darwin. Saludos!

  • @paulvalencia9243
    @paulvalencia9243 4 года назад

    Hermano muchas gracias eres un crack compatriota, tu contenido es muy bueno.

    • @ManuelZapata
      @ManuelZapata  4 года назад

      PaulValencia92 gracias 🙌 Aquí seguimos haciéndole!

  • @samuel14luis
    @samuel14luis 4 года назад +1

    Precioso vídeo

  • @orlandomanuelospinohernand9869
    @orlandomanuelospinohernand9869 4 года назад

    Muy buena explicación, apenaa estoy comenzando en el área de la programación.. 👍

    • @ManuelZapata
      @ManuelZapata  4 года назад

      Genial Orlando! Así empiezas con el pie derecho.

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

    Hola, información de calidad, estoy investigando sobre la creación de servicios y aprendi bastante.

  • @KEANCORP
    @KEANCORP 3 года назад

    Cree una REST y estoy aplicando los consejos

  • @giacomosantana3305
    @giacomosantana3305 3 года назад

    Excelente, me aclaro algunas cosas que tenia dudas

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

    Manuel me encantó el vídeo, podés compartir documentación el tipo de recurso de controladores para ahondar en este concepto?.

  • @iamthefuelte
    @iamthefuelte 3 года назад

    hola manuel te saludo desde argentina, muy bueno tus videos, estoy aprendiendo mucho de vos, tenes algun video en el cual haya mas detalles de versionado de apis?abrazo desde argentina

  • @ypgranados
    @ypgranados 4 года назад

    Que gran video, he cometido muchas de las malas practicas comentadas aca pero me ha ayudado mucho a comprender mejor el concepto de una api REST, saludos!

    • @ManuelZapata
      @ManuelZapata  4 года назад

      Excelente Jefferson! Se trata de aprender y seguir mejorando 💪

  • @samuel23300
    @samuel23300 3 года назад

    Vaya que bueno saberlo🇲🇽

  • @nakeishamartinez7459
    @nakeishamartinez7459 3 года назад

    Wooa me resolviste todas mis dudas :o gracias! explicas súper bien y sencillo

    • @ManuelZapata
      @ManuelZapata  3 года назад

      Muuchas gracias por tus palabras!

  • @paolagalarza2823
    @paolagalarza2823 3 года назад

    gracias ... lo necesitaba !

  • @ack2012
    @ack2012 3 года назад +1

    Manuel. Felicidades por tus contenidos. Tengo una semana que descubrí tu canal y ya me has ayudado un montón. Muchas gracias.
    Una sugerencia para temas futuros a tratar: podrías armar algun video acerca de Arquitectura basada en servicios VS. Arquitectura basada en eventos? Cómo saber cuándo usar una o la otra? Ventajas/desventajas, etc..

    • @ManuelZapata
      @ManuelZapata  3 года назад +1

      Ese sería un tema interesante. Gracias por la recomendación Adameck!

  • @faangoos
    @faangoos 3 года назад

    Estoy empezando a estudiar este tema y me parece excelente los consejos para la implementación de una api rest. Saludos.

  • @edwarmoranrosillo3353
    @edwarmoranrosillo3353 3 года назад

    muy bueno....!!!

  • @SebastianEPH
    @SebastianEPH 2 года назад

    Esta información es oro puro

  • @angelbustamante93
    @angelbustamante93 3 года назад

    muchas gracias !

  • @juandavidcastroperez9662
    @juandavidcastroperez9662 3 года назад

    Buen video, ¿Cuándo puedes subir un video en el que compares una aplicación web, una api y una api rest full acerca de su arquitectura y estructura?. Gracias

  • @nethanzel
    @nethanzel 3 года назад

    Gracias, ahi anote varios fallos y posibilidades de mejorar. Sigue asi, son muy buenos tus videos

    • @ManuelZapata
      @ManuelZapata  3 года назад

      Esa es la idea de estos videos. Poder tomar ideas para mejorar. Saludos!

  • @erizonencina4917
    @erizonencina4917 2 года назад

    Muchas gracias por el contenido, tengo una duda con el tema de los controladores 4:42 apróx. Hay documentación de referencia o se llaman de otra manera? es la primera ves que veo esa definición y buscando en internet solamente encuentro info de los controllers de mvc.

  • @andresrivas5256
    @andresrivas5256 3 года назад

    Excelente!

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

    Buen video

  • @alvarof.chavez6463
    @alvarof.chavez6463 3 года назад

    Excelente información

  • @hugogher
    @hugogher 3 года назад

    muy bueno el video!! algunos de los temas que hablaste me consultaron en una entrevista técnica

  • @cristianpadilla2069
    @cristianpadilla2069 3 года назад

    que buen canal hermano

  • @programacionjavahash
    @programacionjavahash 4 года назад

    Excelente viejo Manuel.

    • @ManuelZapata
      @ManuelZapata  4 года назад +1

      Viejo Robert!! No sabía que estabas por acá. Saludos!!

  • @LuisSanteliz
    @LuisSanteliz 4 года назад

    excelentes consejos mano... gracias

  • @LuisLopez1099llg
    @LuisLopez1099llg 3 года назад

    Siempre devolver 200 hahaha identificado.
    Muchas gracias c:

  • @peruvianException
    @peruvianException 3 года назад

    Excelentes consejos.

  • @__cpmarcelo
    @__cpmarcelo 3 года назад +1

    Buen video, si se pudiera uno explicando un webhook y la diferencia con una api

  • @jasonfallas3044
    @jasonfallas3044 3 года назад

    Exelente contenido.

  • @Algedibarrios
    @Algedibarrios 4 года назад +1

    Sin desperdicio!

  • @NicoILeone
    @NicoILeone 4 года назад

    Excelente video Manuel! te felicito! Muy bien explicado y en poco tiempo. Se comprenden los conceptos. Me encuentro desarrollando una API con Yii2 Framework que viene con muchas herramientas para ello. Saludos!

  • @jemc300x
    @jemc300x 4 года назад

    Hola Manuel, el material del video esta excelente es muy educativo. Seria bueno uno así pero explicando RPC y mostrando las diferencias entre API REST y RPC .

    • @ManuelZapata
      @ManuelZapata  4 года назад

      Anotada la recomendación, Enrique. Gracias!

  • @josemanuelmartinellreynald5785
    @josemanuelmartinellreynald5785 2 года назад

    Saludos desde Cuba.

  • @luismosquera7585
    @luismosquera7585 2 года назад

    Hola, interesante comentario, excelente, una preguna para un metodo get, como puedo colocar varias formas de consultas, es decir, ejemplo buscar user por Id, por el nombre, y por apellido? como se crearia de forma correcta la url para estos metodos?

  • @gerardoagustin
    @gerardoagustin 4 года назад

    Gracias por la información, ahora sera interesante aplicar estas reglas. Saludos. Podrías subir un video con un ejemplo?

    • @ManuelZapata
      @ManuelZapata  4 года назад

      Ya a partir de aquí lo que toca es que apliques las recomendaciones cuando estes haciendo tu API. Saludos Gerardo!

  • @mariaquintero7713
    @mariaquintero7713 4 года назад

    Están muy interesante el contenido. Excelente. Aún no uso el versionado.

    • @ManuelZapata
      @ManuelZapata  4 года назад

      Ya habrá oportunidad de aplicarlo. Saludos Maria!

  • @lvbernal
    @lvbernal 4 года назад

    Gracias, Manuel! Este es un video para visitar muchas veces durante la carrera de desarrollador.

    • @lvbernal
      @lvbernal 4 года назад +1

      ¿Qué recomiendas para manejar información delicada en un GET? Por ejemplo, un Id de usuario interno que no se incluya en el token del servicio de autenticación.

    • @ManuelZapata
      @ManuelZapata  4 года назад +2

      Leo, lo que yo he hecho en el paso son dos cosas (excluyentes)
      1. Incluir ese dato delicado como un custom claim en el access token.
      2. Incluirlo como un custom header en el HTTP request.

  • @alfonsoevangelista9356
    @alfonsoevangelista9356 3 года назад +3

    Super!! Excelentes consejos. Felicidades! Me gustaría que hablaras sobre Graghql en algún vídeo.

    • @ManuelZapata
      @ManuelZapata  3 года назад +2

      Por ahí lo tengo en el radar. Sobre todo para compararlo con REST.

    • @xzdasx
      @xzdasx 3 года назад

      @@ManuelZapata Esto va estar interesante, ya he implementado un par de APIs en graphql y tengo emociones encontradas al respecto.

  • @Fer-us4ny
    @Fer-us4ny 3 года назад

    Excelente video!! Manuel te tengo un pregunta, como deberia ser el endpoint por ejemplo, si se quiere eliminar una lista de recursos? Ej:Recuerso1,Recuerso2,..,Recuerso10. Deberia hacer 10 DELETE /Recurso/Recuerso1 .... DELETE /Recurso/Recuerso10 ó se podria pasar la lista de RecursosID?

  • @davisayuspupo9132
    @davisayuspupo9132 3 года назад

    Manuel excelente video, seria de mucha utilidad hacer ejemplos prácticos y ver también como implementar la capa de negocio que debe tener y que consejos de buenas practicas tienes para esa capa.

    • @ManuelZapata
      @ManuelZapata  3 года назад

      El tema de la capa de negocio da para libros enteros. En el canal tengo un par de videos al respecto. Saludos!

  • @thejuan327
    @thejuan327 3 года назад

    muchas gracias, aprendí a hacerlas al vuelo con ejemplos en el trabajo y no se seguía ninguna buena práctica, reiniciaré mi vida como programador de apis :O

    • @ManuelZapata
      @ManuelZapata  3 года назад

      Jejeje, excelente. Saludos Juan!

  • @Coderos
    @Coderos 4 года назад

    Video esencial para aquellos que hacen API’s a mano.

    • @ManuelZapata
      @ManuelZapata  4 года назад

      Mil gracias por recomendar el vídeo @Coderos!!

  • @borisxd6614
    @borisxd6614 2 года назад

    Me gusto mucho el video, quizas seria bueno un video sobre el patron repositorio y gracias por el contenido

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

    Tienes algún vídeo de programación de API?

  • @nelsonvalverdelatorre5780
    @nelsonvalverdelatorre5780 3 года назад

    Muy buen aporte, conocí algunos proyectos que siempre iban como respuesta de api como "200" y encapsulan la respuesta con
    { "estado," "result","meessage"}
    Y También con las petición dónde solo se envían solo con "POST".

    • @ManuelZapata
      @ManuelZapata  3 года назад

      Pasa muchísimo eso! Se desaprovecha toda la semántica de REST y HTTP.

  • @javierc2657
    @javierc2657 3 года назад

    Thanks

  • @pipe201196
    @pipe201196 2 года назад

    hola buen video, podrias hablar de consejos para apis en graphql

  • @v4ldevrr4m47
    @v4ldevrr4m47 4 года назад

    Hola Manuel, porsupuesto que interesantisimo el tema, me fue util para retrasmitir esos consejos en una charla que preparo tambien. Llegue aqui busando info sobre JWT y viendo los metodos de asegurar tu API. Me dispongo ha hacer mi primera API REST como ejercicio personal y compartire en un live de comunidad pronto. Gracias otra vez

    • @ManuelZapata
      @ManuelZapata  3 года назад +1

      Genial Valderrama! Hiciste el live? Qué tal les fue?

    • @v4ldevrr4m47
      @v4ldevrr4m47 3 года назад

      @@ManuelZapata Todo bien, Al final no ahondamos hasta los temas de seguridad, pero como te comentaba era Buena tenerlas presentes.

  • @diegodorado07
    @diegodorado07 2 года назад

    gracias por el video, tienes alguno sobre snkow flake schema, cubos OLAP para bases de datoss? seria bueno una serie

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

      Te agradezco la sugerencia, Diego! Desafortunadamente no es mi área.

  • @LordKaos666
    @LordKaos666 2 года назад

    Muy buen video Manuel.
    Respecto al punto 6. Seria esperable que además del 200, se reciba un json con el id del recurso ingresado y recomiendas algo mas? Yo era un abusador del 200 en cuanto a la conexión, pero siempre devolvía un estado en json.... era muy "ok el proceso, error, tal cosa falta o es duplicada", es decir 200, pero la regla de negocio en un json. Esta demasiado mal? Me recomiendas alguna documentacion paraestandarizar mi aplicacion? Soy autodidacta y eso no me falla, pero querria mejorarlo. Saludos y gracias.