Я создал веб-приложение и теперь хочу создать несколько API-интерфейсов REST, чтобы их могли программировать сторонние разработчики.Затем я хочу создать несколько клиентских библиотек на некоторых популярных языках (JavaScript, PHP, Ruby и т. Д.), Чтобы разработчикам было удобно пользоваться моим сервисом, чтобы они не анализировали вручную ответ JSON на каждый запрос.
IЯ никогда раньше не создавал инфраструктуру API, поэтому у меня следующий вопрос.Я хотел бы отслеживать использование методов API, вызываемых сторонними разработчиками.Каждый разработчик, прежде чем использовать API, должен быть зарегистрирован, и поэтому я хочу связать каждый запрос с зарегистрированным разработчиком (и так, установить определенные ограничения использования и т. Д.).
Я думал создать уникальный ключ API.для каждого разработчика, который он мог использовать во всех своих приложениях, для аутентификации запросов.Но потом я понял, что если он решит использовать мою оболочку javascript, то злоумышленники смогут просмотреть исходный код страницы клиентского приложения и получить его ключ API.Итак, я решил, что было бы лучше создать уникальный ключ API для каждого приложения, связанного с доменом, где будет размещаться клиентское приложение.Таким образом, даже если пользователь захватит чужой ключ, он окажется бесполезным за пределами домена, где он был первоначально зарегистрирован.Но потом я подумал: а мобильные приложения?Что произойдет, если звонок будет сделан не с сайта?Как я могу аутентифицировать ключ через его домен, если домена нет или IP-адрес не является статическим?
Есть какие-нибудь советы?
Спасибо!