¿Cómo se construye una API?

Una API se compone de dos partes:

  • El backend : la implementación real de la funcionalidad API. Este es el núcleo de la API: para lo que la gente usa la API. Por ejemplo:
    • Si su API traduce texto entre idiomas, este sería el código para hacer la traducción.
    • Si su API modifica imágenes, este sería el programa real que realiza las modificaciones de imagen.
  • La interfaz : la interfaz incluiría los puntos finales reales con los que las personas interactúan. Hay algunas cosas que la interfaz debe tener en cuenta:
    • Autenticación : desea asegurarse de que las personas se registren en su API y realicen solicitudes con una clave válida.
    • Limitación : desea limitar la cantidad de solicitudes que cada desarrollador (por ejemplo, clave de API) puede hacer a su API.
    • Facturación : si su API se paga, desea cobrar a las personas en función del volumen de su uso.

Cuando los usuarios hacen solicitudes, las dirigen a la interfaz, que se encargará de la autenticación, la limitación de tarifas y la facturación, y luego enviarán la solicitud al backend si es válida.

El backend es muy único según la API específica y, por lo tanto, es algo que cada API desarrolla de forma independiente.

Sin embargo, la interfaz es bastante común y, por lo tanto, tiene algunas opciones a la hora de configurarla:

  • Constrúyalo : puede compilar la lógica para verificar las solicitudes y facturar a los usuarios usted mismo. La desventaja es que construir y mantener ese sistema podría tomar mucho tiempo y esfuerzo que podrían invertirse en la API.
  • Cómprelo : hay compañías que venden software que hace la interfaz por usted. Lo bueno es que no gastas tiempo en ello, pero el precio (generalmente de miles a decenas de miles de dólares) puede ser una barrera.
  • Venda la API en un mercado : los mercados API (similares a los mercados en línea) proporcionan la administración de uso y los sistemas de facturación de forma gratuita.
    Simplemente configura su API allí, define sus planes de precios y lo conecta a su backend, y ellos se encargan de la administración de usuarios y cobran por el uso.
    El gran beneficio es que, por lo general, son gratuitos, permitiéndole comenzar rápidamente sin romper su bolsillo.
    Hay varios mercados API que puedes usar para eso
    • RapidAPI: RapidAPI tiene más de 400,000 desarrolladores y le permite vender su API de forma gratuita.
      Puede ver aquí cómo se ve agregar una API: Agregue autenticación y facturación para su API en Heroku [Tutorial].
    • Mashape: el mercado de Mashape le permite enumerar rápidamente su API y agregarle precios.

Descargo de responsabilidad: soy parte de RapidAPI, el mercado de API más grande del mundo.

En general, una API se construiría como una interfaz para un servicio existente, datos existentes o como parte del desarrollo de un servicio más amplio, ya que, como su nombre lo indica, es una interfaz en algo más grande. Esa cosa más grande podría ser una base de datos de información, un sistema de comercio electrónico, un objeto físico o casi cualquier cosa, por lo que el primer paso es descubrir qué desea que la API realmente permita.

A un nivel alto:

  • Determine qué datos u operaciones desea que ofrezca la API.
  • Determine cómo se relacionan estos elementos entre sí, qué parámetros podrían permitir y cómo se devuelven los resultados.
  • También puede seleccionar un estilo arquitectónico (como REST http://en.wikipedia.org/wiki/Rep …) o una codificación específica (como SOAP http://en.wikipedia.org/wiki/SOAP ) que Ayuda al modelado anterior.

A menudo, la implementación estará determinada por la tecnología en la que se implemente realmente su sistema subyacente. La mayoría de los idiomas ahora tienen bibliotecas que le permitirán crear fácilmente una API REST, por ejemplo, especialmente si ya entrega los mismos datos por HTML.

Si está trabajando con hardware o con software que las personas descargan a un sistema operativo (Mac, Windows, etc.) que las personas también necesitan para interactuar, deberá conectar las funciones externas a cualquier capa de software que proporcione el dispositivo / SO tú. Esto será específico de la plataforma.

Por último, si desea convertir la API en algo que sea de acceso público a través de Internet, entonces querrá proporcionar acceso a ella en una URL en particular, como lo haría con una página web. En ese momento definitivamente vale la pena pensar en el control de acceso y la seguridad (quién tiene acceso, qué pueden hacer, …), el rendimiento (aprovisionamiento para la carga que espera, SLA), etc. Es posible establecer sus propios sistemas o use un servicio de terceros como los que proporcionamos en 3scale ( http://www.3scale.net ) para hacer esto.

En general, parece muy complicado, pero en la mayoría de los casos es relativamente fácil desarrollar una API abierta si se hace correctamente + es ciertamente valioso dada la cantidad de problemas de integración que puede ahorrar con socios / clientes y las nuevas oportunidades que creará la API .

More Interesting

Soy un desarrollador .NET (más reciente, solo 6 meses de experiencia). ¿Cómo empiezo si quiero aprender nuevas tecnologías?

Soy un buen desarrollador de pila completa. ¿Cómo puedo ganar 1000 $ rápidamente?

Mi novio dice que Ruby on Rails no es una programación real. Eso es lo que hago como desarrollador. ¿Debería dejarlo?

Necesito desarrollar un sitio web y una aplicación ingeniosa, digamos similar a AirBnB pero no soy programador. ¿Qué es una estimación realista de los costos?

¿Qué debo aprender primero, desarrollo web o WordPress? Quiero ganar dinero lo antes posible.

Como desarrollador de Android, ¿qué tipo de aplicaciones debo desarrollar?

Estoy aprendiendo desarrollo web. ¿Debo aprender jQuery?

No se JavaScript. ¿Prohibirá mi aprendizaje Node.js? ¿O debería comenzar con JavaScript primero?

He revisado muchos temas de Hosting WordPress, no estoy seguro de cuál elegir. Necesito un buen tema de WordPress con integración WHMCS, buen soporte, actualizaciones, receptivo. He notado que MegaHost y Alask son buenos. ¿Cualquier otra sugerencia? ¿Cuáles son tus pensamientos?

Cómo eliminar una imagen de una base de datos y una carpeta SRC en PHP

Llegué tarde a la programación, ¿cuánto tiempo necesito dedicar para obtener un trabajo de desarrollador web junior?

¿Qué tecnología debo aprender junto con MVC?

Estoy aprendiendo desarrollo web a través de una organización sin fines de lucro bien conectada. ¿Qué quieren ver los empleadores en un proyecto final de un nuevo alumno?

Quiero crear un sitio web de torrents, pero eso sería ilegal, entonces, ¿cómo puedo hacerlo sin enfrentar ningún problema ilegal?

Cómo incrustar CSS en HTML