Что значит создавать API в сети? - PullRequest
5 голосов
/ 03 июня 2011

У меня есть сайт, построенный на ASP.NET MVC, и я использую интенсивное взаимодействие с клиентом jQuery для создания живого чата.Многие пользователи анализировали javascript и находили URL-адреса, на которых он размещен, для взаимодействия с чатом.Они начали создавать ботов для забавы, чтобы играть в игры на каналах чата.

Эти пользователи продолжают спрашивать «API», чтобы им было легче кодировать.Я думал, что знаю, что такое API, но я все еще немного размыт.Разве API не является интерфейсом, с которым может взаимодействовать третья сторона?

Что бы означало создание веб-API для моего сайта?Будет ли это просто документ со списком URL-адресов и как с ними взаимодействовать?

Я также слышал о веб-сервисах и веб-ссылках.Кто они такие?Что значит построить веб-сервис?Это как-то связано с API в сети?

Ответы [ 5 ]

5 голосов
/ 03 июня 2011

API - это буквально «Интерфейс прикладного программирования».На самом базовом уровне это любой интерфейс, предназначенный для взаимодействия или взаимодействия с другим программным обеспечением.В некотором смысле, ваши открытые URL-адреса являются API-интерфейсами.Конечно, точки входа, предназначенные как пользовательские интерфейсы, часто не очень хорошо подходят для написания другого программного обеспечения, поэтому, хотя они и являются API, они, вероятно, не очень хорошие API, и вы, вероятно, найдетескоро у вас возникнут проблемы с производительностью.

Веб-API - это точки входа в приложение, работающее на веб-сервере, которое позволяет другим инструментам каким-либо образом взаимодействовать с этим веб-сервисом.Думайте об этом как "пользовательский интерфейс" для программного обеспечения.Однако вашему программному обеспечению требуется надлежащая защита и контроль доступа.Подумайте об ограничении скорости, иначе вы рискуете очень агрессивным ботом затопить ваш сервер.Но это ограничение скорости должно быть в пользовательском интерфейсе для людей, или кто-то просто напишет сценарии против него.

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

Список URL-адресов и способы взаимодействия с ними - все любой Веб-API есть, в конце концов.Современный дизайн веб-API почти всегда включает в себя токены аутентификации и безопасности (вам, вероятно, следует изучить модель аутентификации OAuth, используемую, в частности, Twitter), и существует множество конкурирующих стандартов для отправки данных, одним из которых является JSON.из более популярных вариантов.Документирование вашего интерфейса действительно превращает его в API, но вы, возможно, захотите потратить некоторое время на решение, действительно ли это «правильный» способ взаимодействия программного обеспечения с вашим веб-сервисом - после того, как вы опубликовали API, его изменение нарушит все, чтозависит от вашего сервиса!

4 голосов
/ 03 июня 2011

API, или интерфейс прикладного программирования, представляет собой набор установленных протоколов для взаимодействия внешних программ с вашим приложением.Как вы сказали, пользователи проанализировали JavaScript и обнаружили используемые вами URL-адреса, а затем создали программы, использующие эти URL-адреса для взаимодействия с вашим приложением.

Технически, у вас уже есть API, и они его обнаружили -этот набор URL-адресов, который управляет открытием комнат чата, публикацией в комнатах, чтением постов других пользователей.Тем не менее, ваши пользователи запрашивают более устоявшийся, структурированный набор методов для этого.

Такие методы могут включать в себя форму аутентификации приложения, а также сообщения и / или данные, возвращаемые изприложение для внешней программы, позволяющее внешней программе узнать, что случилось с ее запросом (в отличие от простого возврата HTML или вообще ничего) - например, «успех» или «ошибка», «повторная попытка недоступна» и т. д.

2 голосов
/ 03 июня 2011

Это будет набор функций, которые предоставляют интерфейс для ASP.NET MVC.Такие функции, как «начать чат» или «отправить сообщение».Это также потребует некоторых настроек безопасности, чтобы позволить другим пользователям получить доступ к вашему серверу.

1 голос
/ 03 июня 2011

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

Но если вы хотите сделать это «правильно», вам, вероятно, нужно вернуться назад и взглянуть на код, который вы написали, и найти способы сделать его более удобным для третьих сторон, а также, возможно,"укрепить" его против атак, если вы собираетесь облегчить использование людьми.

1 голос
/ 03 июня 2011

Они просят сделать URL-адреса, по которым их боты отправляют сообщения, очень четкими и четко определенными для того, что они делают.

Часто эти "веб-API" принимают структурированные данные в POST, илиПеременные CGI в GET и не возвращают HTML, а, скорее, XML или json или другие удобные для программирования возвращаемые данные.

В этом суть!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...