Reddit App API
RU

Reddit App API · 03 / 08

Туристу нужно поле поиска, а не ваш ключ архива

Спроектируйте серверную границу учётных данных, отделите сессию аккаунта от заголовков запросов и подготовьте осознанную замену API-ключа.

Определите границу до создания экрана

В гипотетическом туристическом приложении человек вводит offline maps и нажимает «Поиск». Устройство должно передать намерение бэкенду приложения, а не получить ключ, оплачивающий запросы к архиву. Браузерную сборку можно изучить; распространяемое мобильное приложение тоже способно раскрыть встроенные строки или исходящие заголовки. Значение, включённое при сборке, не становится секретным от названия «переменная окружения».

Хранение ключа на бэкенде меняет набор сведений, нужных выпущенному клиенту. Ему нужен контракт запроса вашего приложения, например поисковая фраза и допустимое сообщество. Заголовок аутентификации архива добавляет сервер. Такая архитектура всё равно требует контроля доступа и аккуратной эксплуатации; перемещение секрета не делает приложение автоматически безопасным целиком.

Принимайте небольшой запрос приложения

В первой версии бэкенд мог бы принимать поисковую фразу и номер страницы, самостоятельно устанавливая subreddit=hiking и limit=3. Проверяйте длины и диапазоны, разрешайте только поддерживаемые приложением варианты. Не принимайте от клиента произвольный хост архива, DSL запросов или заголовок аутентификации для пересылки. Это проект границы приложения, а не дополнительный эндпоинт Reddit App API.

При обращении бэкенда к архиву используйте X-API-Key либо Authorization: Bearer. Неверные параметры, отклонённые до резервирования, не стоят кредита; успешные пустые ответы стоят. Валидация помогает исправлять ошибки и делает интеграцию предсказуемой. Она не доказывает, что указанная дата охвачена архивом или что корректный поиск вернёт полезные записи.

Отделяйте вход в аккаунт

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

API-ключ и баланс аккаунта относятся к конкретному арендатору: они не общие для сети доменов. Сохраняйте учётные данные redditapp.com с явной меткой домена. Ключ другого бренда не станет действительным от смены адреса назначения. Общесетевые правила права на пробные кредиты не превращают раздельные балансы в общий фонд.

Проверяйте журналы как часть защиты секрета

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

Возвращайте сообщение, на которое турист может отреагировать. Ошибка ключа сервиса требует внимания оператора, низкий баланс — решения по аккаунту, ограничение частоты — сдержанности. Постоянные повторы 401 или 402 не устраняют причину. Если ответ на запрос потерян, фиксируйте неопределённость, а не предполагайте бесплатную неудачу или подтверждённый успех.

Заменяйте ключ, не теряя из виду развёртывания

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

Храните пароль надёжно: сейчас в сервисе нет сброса пароля и входа через Google. После замены проверьте изменённое развёртывание отдельным запросом, помня, что успешное получение данных тарифицируется. Сохраняйте честные сообщения загрузки и ошибок во время смены. В /ru/#field-notes есть связанные заметки о состояниях и бюджете.