Как написать JavaScript API?

Я ищу для создания API, чтобы другие сайты могли получать доступ к данным из моего веб-приложения.

Мне не удалось найти какие-либо ресурсы в Интернете, которые объясняют процесс создания вашего собственного API-интерфейса JavaScript.

Я хочу узнать, как настроить аутентификацию, передачу данных и т.д.

Как написать собственный JavaScript API?

Есть ли хорошие учебники, которые объясняют процесс создания JavaScript API, например API GData или API YouTube?

Я действительно буду делать это в двух разных приложениях. Один находится на сервере Apache с Tomcat, MySQL и Java. Другой - на apache с MySQL и PHP. Интерфейс полностью написан на javascript, через который он взаимодействует с бэкэнд. Я уже начал писать библиотеку, которую они будут использовать для взаимодействия с нашими функциями.

Ответ 1

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

Я лично не знаком с GData или API YouTube, поэтому их методы мне неизвестны. Однако я могу сделать следующие личные рекомендации:

1) Я бы посоветовал вам избегать прямого просмотра HTML вашей страницы и вместо этого рекомендовать API-интерфейс на стороне сервера для дополнения вашего API-интерфейса на стороне клиента. В частности, я бы рассмотрел подход RESTful как, где вы обрабатываете свои сущности/данные как ресурсы, для которых вы хотите действовать.

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

Еще одно преимущество наличия серверного компонента - вы сможете воспользоваться JSONP, который может облегчить некоторые из боли, связанные с выполнением междоменных запросов. Однако один из недостатков JSONP заключается в том, что вы не можете делать запросы POST, а только запросы GET, которые не полностью соответствуют требованиям RESTful (но я все же считаю, что архитектура RESTful предлагает множество преимуществ).

2) Передача данных - легкая рекомендация - руки вниз Я бы выбрал JSON. Существуют некоторые сценарии, в которых XML может быть более информативным форматом данных над JSON, но по большому счету, я думаю, вы найдете JSON, который удовлетворит ваши потребности довольно хорошо.

3) Аутентификация на стороне клиента может быть сложной для междоменных запросов. Один из вариантов здесь - использовать iframe для аутентификации. Другой вариант - использовать HMAC или OAuth.

4) Что касается собственно написания JavaScript API, я бы порекомендовал прочитать некоторые из потоков здесь, в разделе SOA относительно книг JavaScript. Вероятно, это будет обсуждение вопросов об именах и других темах, полезных для организации API.

Как я уже сказал, это очень общие рекомендации. Может быть, ваш прецедент отлично справится с быстрым и грязным выскабливанием HTML (хотя вам, вероятно, придется использовать IFrames, чтобы обойти ограничения между доменами). То, что я упомянул выше, взятое в целом, не является тривиальной задачей, особенно если ни один из этих элементов не находится прямо сейчас.