@foobarsik
#Laravel #Vue

Какой выбрать endpoint для singleton ресурса (RESTish API)?

У юзера только одна страница-визитка, у страницы может быть только одна кнопка.

Возможные варианты endpoint'a для редактирования кнопки страницы:

1. /pages/{id}/buttons/{id} (использовать просто /buttons/{id} не хотелось бы причине наличия нескольких модулей, во избежание конфликтов, вдруг в других модулях тоже будут какие-то кнопки)

2. /page/button

3. для каждого модуля свой api uri в формате site.com/api/page/v1, а endpoint для кнопки тогда будет /button

4. /pages/my/button

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

Что бы вы выбрали?
  • Вопрос задан
  • 159 просмотров
Решения вопроса 1
rockon404
@rockon404
Frontend Developer
Кнопка работает с пользовательскими данными? Если да, то:
POST '/api/v1/profile/'

body: {
  name: 'UserName',
  /* other data */
  contactLink: 'mailto:user-mail@site.com',
}

Для существующего профиля PATCH по этому же пути, чтобы можно было посылать только измененные данные.
Если кнопка работает не с данными и может быть деактивирована, то по аналогии с 'profile' создаем какой-нибудь POST '/api/v1/pages/{page_id}/content/'.

Делать эндпоинты по изменению отдельных кнопочек, имхо, - маразм.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы