API significa Interfaz de programación de aplicaciones (participante principal de toda la interactividad).
Es como un mensajero que lleva nuestras requests a un sistema y nos devuelve una respuesta a través de una conectividad perfecta.
Usamos API en muchos casos para obtener datos para una aplicación web o para conectarnos a un servidor remoto que tiene datos como el clima que cambia constantemente o para permitir que dos aplicaciones intercambien datos entre sí.
La API no solo proporciona la reutilización del código, sino que también utiliza el concepto de abstracción (que muestra la funcionalidad ocultando la complejidad).
Los usos más comunes de la vida real de los conceptos de API incluyen:
- Mesero en un restaurante que lleva su solicitud de pedido al chef y le devuelve el plato solicitado
- Centralita que apaga el tubo de luz con una sola pulsación
- Reservar un vuelo en línea desde sitios como MMT (basado en la web)
- Registrarse en un sitio de compras desde una cuenta de Facebook (basado en la web)
Diferentes API se comunicarán de diferentes maneras:
- XML-RCP/SOAP: Ambos usan XML
- JavaScript: Centrado en Javascript
- API RESTful: protocolo HTTP (protocolo de transferencia de hipertexto) utilizado (mejor para API web)
Las características principales de las API en el desarrollo web
se pueden usar para mashups, es decir, la información de un sitio se puede mezclar con la de otro. La autenticación es una de las cosas importantes a tener en cuenta, ya que todas las API no son públicas. Se requieren claves API en caso de autenticación para un uso seguro. Por ejemplo, consulte Autenticación de la API de Gmail
. Hay algunas API que no requieren ningún token de acceso.
Ejemplo: API de Github
https://api.github.com
Producción:
{ "current_user_url": "https://api.github.com/user", "current_user_authorizations_html_url": "https://github.com/settings/connections/applications{/client_id}", "authorizations_url": "https://api.github.com/authorizations", "code_search_url": "https://api.github.com/search/code?q={query}{&page, per_page, sort, order}", "commit_search_url": "https://api.github.com/search/commits?q={query}{&page, per_page, sort, order}", "emails_url": "https://api.github.com/user/emails", "emojis_url": "https://api.github.com/emojis", "events_url": "https://api.github.com/events", "feeds_url": "https://api.github.com/feeds", "followers_url": "https://api.github.com/user/followers", "following_url": "https://api.github.com/user/following{/target}", "gists_url": "https://api.github.com/gists{/gist_id}", "hub_url": "https://api.github.com/hub", "issue_search_url": "https://api.github.com/search/issues?q={query}{&page, per_page, sort, order}", "issues_url": "https://api.github.com/issues", "keys_url": "https://api.github.com/user/keys", "notifications_url": "https://api.github.com/notifications", "organization_repositories_url": "https://api.github.com/orgs/{org}/repos{?type, page, per_page, sort}", "organization_url": "https://api.github.com/orgs/{org}", "public_gists_url": "https://api.github.com/gists/public", "rate_limit_url": "https://api.github.com/rate_limit", "repository_url": "https://api.github.com/repos/{owner}/{repo}", "repository_search_url": "https://api.github.com/search/repositories?q={query}{&page, per_page, sort, order}", "current_user_repositories_url": "https://api.github.com/user/repos{?type, page, per_page, sort}", "starred_url": "https://api.github.com/user/starred{/owner}{/repo}", "starred_gists_url": "https://api.github.com/gists/starred", "team_url": "https://api.github.com/teams", "user_url": "https://api.github.com/users/{user}", "user_organizations_url": "https://api.github.com/user/orgs", "user_repositories_url": "https://api.github.com/users/{user}/repos{?type, page, per_page, sort}", "user_search_url": "https://api.github.com/search/users?q={query}{&page, per_page, sort, order}" }
Lista en formato JSON
- https://api.github.com/feeds
Salida:{ "timeline_url": "https://github.com/timeline", "user_url": "https://github.com/{user}", "security_advisories_url": "https://github.com/security-advisories", "_links": { "timeline": { "href": "https://github.com/timeline", "type": "application/atom+xml" }, "user": { "href": "https://github.com/{user}", "type": "application/atom+xml" }, "security_advisories": { "href": "https://github.com/security-advisories", "type": "application/atom+xml" } } }
- https://api.github.com/rate_limit
{ "resources": { "core": { "limit": 60, "remaining": 56, "reset": 1567928119 }, "search": { "limit": 10, "remaining": 10, "reset": 1567924666 }, "graphql": { "limit": 0, "remaining": 0, "reset": 1567928206 }, "integration_manifest": { "limit": 5000, "remaining": 5000, "reset": 1567928206 } }, "rate": { "limit": 60, "remaining": 56, "reset": 1567928119 } }
Publicación traducida automáticamente
Artículo escrito por akritigoswami y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA