Как приложения узнают, как возвращать данные, запрошенные API?

#json #python-3.x #api

#json #python-3.x #API

Вопрос:

Допустим, я создал Twilio. Ниже приведен их API оповещений

https://www.twilio.com/docs/usage/monitor-alert:

Загрузите вспомогательную библиотеку с https://www.twilio.com/docs/python/install

 import os
from twilio.rest import Client
 

Идентификатор вашей учетной записи и токен авторизации из twilio.com/console
и установите переменные среды. См. http://twil.io/secure

 account_sid = os.environ['TWILIO_ACCOUNT_SID']
auth_token = os.environ['TWILIO_AUTH_TOKEN']
client = Client(account_sid, auth_token)

alert = client.monitor.alerts('NOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').fetch()

print(alert.alert_text)
 

Пример ответа JSON API:

 {
  "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "alert_text": "alert_text",
  "api_version": "2010-04-01",
  "date_created": "2015-07-30T20:00:00Z",
  "date_generated": "2015-07-30T20:00:00Z",
  "date_updated": "2015-07-30T20:00:00Z",
  "error_code": "error_code",
  "log_level": "log_level",
  "more_info": "more_info",
  "request_method": "GET",
  "request_url": "http://www.example.com",
  "request_variables": "request_variables",
  "resource_sid": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "response_body": "response_body",
  "response_headers": "response_headers",
  "request_headers": "request_headers",
  "sid": "NOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "url": "https://monitor.twilio.com/v1/Alerts/NOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "service_sid": "PNe2cd757cd5257b0217a447933a0290d2"
}
 

Как приложение возвращает указанные выше данные? Как он узнает, что нужно возвращать вышеуказанные данные?

Нужно ли создавать объект с указанными выше данными, чтобы ответить на указанный вызов API> Нужно ли программисту писать специальную функцию, которую они обычно не создавали бы, если бы не хотели предоставлять доступ API к приложению, для ответа на вызов api, который вернет данные?

Так, например, если бы у меня был веб-сайт, который позволял людям вводить свои имена и фамилии в базу данных. Затем мне нужно было бы написать программу, которая использовала бы некоторую функцию, которая вставляла имена. Если бы я затем захотел создать API, чтобы предоставить другим пользователям возможность извлекать имена из базы данных, мне нужно было бы создать другую функцию, которую я бы не создавал, если бы у меня не было API, для извлечения имен для вызова API. Или я бы создал вызов API, который отправил бы запрос к некоторой функции, которая вернула бы объект со всеми данными, которые, как я сказал, вернет мой вызов API; или функция будет искать данные, создавать объект, а затем возвращать информацию человеку, который сделал вызов.

Комментарии:

1. Приложение ничего не знает. Разработчик приложения читает спецификацию API (или конкретной используемой функции) и решает, как написать код, чтобы приложение предоставляло необходимые данные.

2. Если бы у меня было calculator.com с помощью внешнего API, который позволял пользователям Twilio добавлять. Был выполнен вызов внешнего API для добавления, и в то же время на веб-сайте был добавлен пользователь. Как это calculator.com знайте, как вернуть правильный вывод во внешний API, который позволил пользователям Twilio добавлять и calculator.com пользователи должны делать то же самое. Когда пользователи Twilio и calc.com пользователи используют одну и ту же функцию добавления, с теми же параметрами и в то же время, как calculator.com знаешь ?

3. Если бы у меня было calculator.com с помощью внешнего API, который позволял пользователям Twilio добавлять. Пользователь Twilio выполнил вызов API для добавления и в то же время на calculator.com добавлен пользователь. Как это calculator.com знайте, что нужно возвращать правильные выходные данные каждому пользователю, когда пользователи Twilio и calc.com пользователи используют одну и ту же функцию добавления, с теми же параметрами и в одно и то же время?

4. Вам нужно поработать, чтобы понять, что такое «интерфейс» («I» в API) на самом деле. Вы демонстрируете, что не понимаете этого.

5. Вы можете вернуть все, что захотите. Это может быть представление строки базы данных в соотношении 1: 1. Это может быть статический текст. Это может быть статический файл на диске. Это могут быть рандомизированные данные. Вы можете использовать объекты, у вас может вообще не быть никаких объектов. Попробуйте сначала написать веб-сервер hello world. Затем заставьте его возвращать JSON чего-либо. Затем верните что-то из базы данных. Маленькие шаги. Представьте, что Twilio не существует в течение нескольких дней.

Ответ №1:

Кто-то написал это. Или, может быть, они написали код, который это написал.

Но, вероятно, кто-то просто написал это хотя бы за одну итерацию; но поскольку в наши дни все переведено, скомпилировано и интерпретировано, в чем разница.

Некоторые из лучших внешних API-сервисов произошли от внутренних API; например, AWS.

Сложная часть заключается не в создании API, а в его тестировании, обеспечении его надежности и безопасности, а также достаточной мощности для обеспечения конфиденциальности.