Cómo crear una API

30 de junio de 2022

¿Qué es una API?

¿Qué es una API y cuáles son las directrices para crear una correctamente? Una interfaz de programación de aplicaciones (API) es un conjunto de funciones de programación, herramientas y protocolos que permiten a las aplicaciones externas acceder e interactuar con las características o los datos de una plataforma, sistema operativo, aplicación o servicio. Las API efectivas abren la puerta a un mayor intercambio de datos y colaboración, creando un ecosistema donde diferentes piezas de software pueden comunicarse entre sí para ofrecer funcionalidad empresarial. Las API son un componente central de las aplicaciones modernas y de las arquitecturas basadas en microservicios nativas de la nube; crean los principales canales para que diferentes servicios se comuniquen entre sí y ofrezcan experiencias modernas.

Diseñar, desarrollar y distribuir API exitosas requiere aprovechar una variedad de mejores prácticas. Al adherirse a estas mejores prácticas, el proceso garantiza un acceso seguro y un uso fácil por parte de desarrolladores y aplicaciones, por igual. Estas mejores prácticas incluyen:

  • Diseño simple y elegante que garantiza que los desarrolladores de diferentes conjuntos de habilidades y experiencia puedan utilizar las API
  • Altos niveles de seguridad para limitar el acceso a los datos, según sea necesario
  • Principios de diseño lean para garantizar que el acceso a la API no atasque ni el origen ni la aplicación externa
  • Servicios relacionados para garantizar la gobernanza, la seguridad y la supervisión del uso de las API existentes

Cómo desarrollar una API desde cero

La creación de una API depende en gran medida de factores específicos relacionados con el origen y las aplicaciones externas que se interconectarán con este origen. Estas son algunas preguntas que se deben hacer al planificar el proceso de desarrollo de API.

¿Cuáles son tus objetivos?
Para cualquier tipo de proyecto, el mejor lugar para comenzar es siempre el panorama general: definir y comprender tus objetivos. El propósito de su API es la luz que guía este proyecto. ¿Qué información se intercambiará a través de la API? ¿Cómo se utilizará o presentará? Otros elementos a tener en cuenta incluyen la comprensión del público objetivo de la aplicación y sus necesidades.

¿Cuáles son tus limitaciones?
La otra cara de los objetivos de su proyecto son las limitaciones del proyecto. Aplicar una lente práctica al desarrollo es un paso necesario, por lo que debes tener una buena comprensión de tus propios recursos y limitaciones de programación. Otro factor a considerar: cualquier limitación técnica, como las preocupaciones de seguridad, el impacto en los recursos de hardware y las demandas de rendimiento, debería ser una preocupación para la escalabilidad.

¿Cuál es tu arquitectura?
Cuando se trata de diseñar una API desde cero, los desarrolladores tienen numerosos puntos de partida para elegir. Python, Java, JavaScript, C# y otros lenguajes son opciones capaces de desarrollar tu API. Otros factores que se deben tener en cuenta en el diseño son la usabilidad, la escalabilidad (asociada con las necesidades de recursos) y la seguridad. Este último es particularmente importante, ya que las API actúan como puentes entre aplicaciones. Al hacerlo, ambas partes deben tener sus datos debidamente protegidos. Una API con vulnerabilidades de seguridad está abierta a exploits, como la inyección de código y la exposición a datos.

Con estas preguntas de gran imagen, se pueden definir directrices y los desarrolladores pueden profundizar en el proceso de creación de una API desde cero.

API SOAP frente a API REST

Una de las decisiones clave a la hora de diseñar una API se reduce a cómo la aplicación accederá a los servicios web. El protocolo de acceso a objetos (SOAP) y la transferencia de estado representacional (REST) de estilos arquitectónicos de software simples pueden ser rutas efectivas para diseñar una API. Ambos ofrecen ventajas y desventajas, y el que funciona mejor para un proyecto depende de la situación y el contexto de uso. En general, los servicios web soportarán SOAP o REST, por lo que la decisión sobre el servicio web para su API bien puede definirse por si SOAP o REST funcionan mejor para sus objetivos.

¿Qué es el SOAP?
SOAP es un protocolo basado en XML diseñado originalmente por Microsoft. Basado en un conjunto de reglas, SOAP crea estándares en la mensajería que han soportado numerosas expansiones (coordinación de WS y WS-seguridad), automatización y manejo de errores incorporado. SOAP funciona mejor en un entorno distribuido, pero su dependencia de la estructura XML puede hacer que el código sea demasiado complejo.

¿Qué es el REST?
REST se desarrolló como una alternativa más sencilla y ligera a SOAP que opera en un nivel de punto a punto. Como un estilo arquitectónico de software creado específicamente para una escalabilidad eficiente, REST ofrece una serie de restricciones estandarizadas que minimizan el procesamiento y ofrecen flexibilidad. La rápida respuesta de REST minimiza la latencia en varios formatos de mensajes de salida utilizados por las aplicaciones, incluidos JSON y CSV.

¿Debería usar REST o SOAP para su API?
¿Cuál es el mejor estándar para tu aplicación? Depende de tus necesidades. En la mayoría de los casos en los que la aplicación activa mensajes simples orientados al usuario, como medios compartidos o salida de una consulta de base de datos, las API de REST son ideales. SOAP tiene una curva de uso y aprendizaje más pronunciada, pero esta complejidad inherente la hace capaz de manejar transacciones más complicadas, como pagos seguros.

Elección de las herramientas de diseño de API

Las tuercas y pernos de la creación de una API varían según las herramientas elegidas por el equipo de desarrollo. Las soluciones de API de Oracle Cloud Infrastructure (OCI) te permiten diseñar y desarrollar API fácilmente con un kit de herramientas completo que posibilita la creación rápida de prototipos y la validación, según las especificaciones OpenAPI. Con OCI, los usuarios pueden acceder a API Blueprint o Swagger para diseñar sus API. Además, las API se pueden crear desde cero o desde plantillas para acelerar el proceso de desarrollo.

Veamos más de cerca el proceso de desarrollo de API en OCI. Para este ejemplo, crearemos un recurso de API (opcionalmente con una descripción de API creada a partir de un archivo de descripción de API cargado) mediante la consola de OCI. Sigue los pasos tú mismo registrándote en una cuenta gratuita de OCI.

  1. En la consola, abra el menú de navegación y haga clic en Developer Services. En gestión de API, haz clic en Gateways.
  2. En la página API, haz clic en Create API Resource y especifica su nombre. Carga un archivo de descripción de API (que contenga una descripción de API en un idioma compatible) y etiquetas.
  3. Haz clic en Create para crear el nuevo recurso de API.
  4. Escribe el código de backend. Mediante el lenguaje de programación y el marco que prefieras, crea el código de backend que impulsará tu API. Esto puede ser un proceso iterativo que incluya a otros colaboradores.
  5. Prueba el código de backend. El servicio de desarrollo de API de Oracle incluye varias herramientas para probarlos localmente y a través de varios servicios de integración continua (CI).
  6. Despliega. Lanza la API y hazla accesible para los ecosistemas de desarrolladores, socios, clientes y desarrolladores internos. Oracle API Gateway permite la supervisión y gestión del uso de conexiones de API, seguridad y gobernanza.

Para obtener una visión más detallada del desarrollo de API mediante la solución de API basada en la nube de Oracle, consulta la guía para desarrolladores de API de Oracle (PDF).

Mejores prácticas para probar API

Las pruebas exhaustivas de tu API son un paso crucial para garantizar un lanzamiento sin problemas y operaciones continuas. Para ayudarte a desplegar API que satisfagan las necesidades de tu empresa, a continuación se muestra una breve lista de las mejores prácticas de API efectivas que debes seguir:

  • Valida el código mediante una prueba de humo de API (una prueba "bare-bones" valida que la funcionalidad básica de tu API está funcionando). La prueba humo debe comprobar si hay errores repetibles.
  • Utiliza datos realistas en condiciones similares a las del entorno de producción. Trabajar con datos que no reflejen los casos de uso del mundo real solo prolongará su capacidad para solucionar diferentes escenarios y puede producir pruebas poco confiables. Por lo tanto, las pruebas deben replicar un escenario del mundo real lo más cerca posible.
  • Realizar pruebas positivas y negativas. Debido a que las pruebas requieren un espectro completo de resultados esperados y escenarios de uso, los desarrolladores deben tener en cuenta tanto las pruebas positivas (resultado funcional esperado) como las negativas (errores planificados que crean resultados inesperados) como parte de su plan.
  • Utiliza un seguimiento completo de las respuestas de API para obtener resultados transparentes. Las pruebas pueden ser un proceso largo y arduo, y el impulso de descartar los resultados de las pruebas es natural cuando existen volúmenes masivos. Sin embargo, el registro diligente de estos datos garantiza un registro claro de la funcionalidad, el comportamiento, los resultados de las pruebas y la eficacia.
  • Comprueba tanto la seguridad como el rendimiento. La funcionalidad es obviamente clave, pero una vez que se ha demostrado que las pruebas funcionan, es igual de importante comprobar la seguridad (riesgos de acceso y datos) y el rendimiento (uso de recursos, escalado y procesamiento eficiente).

¿Listo para crear y probar tu API? Prueba los servicios de gestión de API de Oracle Cloud Infrastructure de forma gratuita para disfrutar de la completa solución de gestión del ciclo de vida de la API.