Ingeniería de software: ¿qué es la API REST y cómo me familiarizo con ella?

Hola Douglas Adolph!

Las excelentes respuestas de Ming Liu y Steven J Owens probablemente hayan resuelto todas sus dudas.

Si no le importa, permítame darle otra visión del tema. El concepto de REST fue el resultado de la investigación académica, y todavía se está investigando hoy en día.

Sin embargo, en el mercado la práctica podría resumirse de una manera muy simple. Considere, por ejemplo, la banca en línea. Suponga que está un poco cansado de la rutina para obtener el saldo de la cuenta, como pasar por el inicio de sesión, seleccionar el menú para una cuenta y finalmente recibir el saldo. Y que le gustaría automatizar eso usando un programa, no más navegación web para obtener su saldo.

Entonces, la respuesta sería una API REST que su banco le permitiría usar, como cliente registrado. Como tal, recibiría una clave que su programa enviaría al sistema bancario para autenticar su programa. A continuación, enviaría otro comando a su banco para pedir realmente el saldo. Ahora cerrarías tu sesión.

La práctica actual de enviar estos comandos sería como métodos HTTP. Más precisamente HTTPS – también conocido como HTTP encriptado – métodos; y, por lo general, OBTENER su información, que proporciona pocos o ningún parámetro dado en una URL, y POST, donde generalmente proporcionará más parámetros, en un área de datos encerrada en el cuerpo de los datos enviados con la solicitud del método.

Tal como se informó, la respuesta generalmente estará en JSON o XML que su programa tendrá que examinar. Por supuesto, se utilizan otros formatos de datos, por ejemplo, texto para mensajes muy simples, PDF para informes, etc.

En algunas situaciones, el programa cliente tendrá que analizar la respuesta para dar el siguiente paso.

REST significa transferencia de estado representativa

El concepto es simple.

  1. Tome cualquier objeto de datos.
  2. Serialícelo en algún formato de intercambio de datos (comúnmente JSON o XML) en una forma que represente el estado actual del objeto.
  3. Envíalo por cable.
  4. Deserialícelo en el otro extremo y reconstruya el objeto.

¡Eso es!

REST es intencionalmente simple y dejó gran parte del detalle al implementador. Como tal, esto se convierte en un tema de debate común. Las implementaciones se diferencian mucho y la opinión de los implementadores también difiere mucho. La verdad es que todos están DESCANSADOS.

Eso depende de lo que quieras decir con ‘REST API’.

Comprender el concepto es sencillo. Si nada más, lea la tesis de Roy Fielding:

Estilos arquitectónicos y el diseño de arquitecturas de software basadas en red

REST es simple, pero como Fielding dice en esta publicación de blog de octubre de 2008, donde trata de abordar algunos errores comunes o conceptos erróneos que la gente tiene sobre lo que hace que un API RESTful:

“Creo que la mayoría de la gente comete el error de que debería ser simple diseñar cosas simples. En realidad, el esfuerzo requerido para diseñar algo es inversamente proporcional a la simplicidad del resultado. A medida que avanzan los estilos arquitectónicos, REST es muy simple “.

Las API REST deben ser impulsadas por hipertexto

Recomiendo también leer los comentarios en la publicación, donde Fielding aclara algunos puntos.

More Interesting

¿Qué son los lenguajes de programación y para qué se utilizan?

Stripe (compañía): ¿Cómo aprendió a programar Sheena Pakanati?

¿Qué proyectos de software hiciste mientras estabas en la escuela?

En Java, ¿qué significa 'String args []' en 'public static void main (String args [])'?

¿Cuál es la forma de aprender las pruebas de software?

¿Por qué la mayoría de los gerentes / reclutadores indios son duros y deliberadamente atornillan a los empleados indios / entrevistados indios en las empresas tecnológicas de EE. UU.?

¿Cuál es el primer paso de una función de desarrollador de software en una empresa de tecnología mediana / grande a una función ejecutiva en una empresa exitosa?

¿Es un MVP lo mismo que un prototipo?

Alibaba registró un récord de ventas de $ 9 mil millones en un día durante su venta del Día del Soltero. ¿Qué pasos tomó para llevar a cabo operaciones tan masivas sin problemas técnicos en términos de tráfico y otras cosas?

Soy ingeniero de software (contratista) en una empresa basada en productos. Me estresan las palabras que dice mi TL. ¿Cómo puedo superar esto?

¿Se puede escribir el código de fondo junto con un servicio web en NodeJS?

¿Cómo compilo el código Objective-C en Windows?

¿Qué hace que el sistema de construcción Ninja sea tan rápido? ¿Hay sistemas de construcción más rápidos?

¿Cómo funciona como ingeniero informático o estudiante de informática, especialmente si eres mujer?

¿Cuál es la anatomía de los proyectos de programación donde se usan múltiples lenguajes?