#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, а в его тестировании, обеспечении его надежности и безопасности, а также достаточной мощности для обеспечения конфиденциальности.