FOS REST Bundle: прикол с личным ресурсом

Я использую пакет FOS Rest для создания ресурса REST для ресурса «люди», в основном URL-адреса должны быть:

  • Список: ПОЛУЧИТЬ /api/лица
  • Добавить: POST /api/persons
  • Получить одного человека: GET /api/persons/{id}
  • Изменить: PUT /api/persons/{id}
  • Удалить: УДАЛИТЬ /api/persons/{id}

Поэтому я определил свои методы в контроллерах следующим образом:

public function cgetPersonsAction() # List
public function cgetPersonAction(...) # Get single
public function cdeletePersonAction(...) # Delete
#etc...

А вот и забавная часть: вместо /api/persons для get single, put, post и delete пакет FOS Rest вычисляет множественное число человека в людей, а не людей, и в итоге URL-адреса были такими:

  • Список: ПОЛУЧИТЬ /api/лица
  • Добавить: POST /api/люди
  • Получить одного человека: GET /api/people/{id}
  • Изменить: PUT /api/people/{id}
  • Удалить: УДАЛИТЬ /api/people/{id}

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

Знаете ли вы, есть ли способ заставить URL-адрес оставаться «человеком»? Я думаю, что люди не имеют большого смысла здесь


person petekaner    schedule 03.04.2017    source источник
comment
посмотрите здесь - по умолчанию маршруты получают множественное число, так что, вероятно, это ваша проблема.   -  person LBA    schedule 03.04.2017


Ответы (1)


Вы можете принудительно указать URL-адрес, используя:

FOS\RestBundle\Controller\Annotations\Get; ...\Post; ,...

Для URL-адреса GET это будет:

@Get("api/whatever/{id}")
person Đuro Mandinić    schedule 03.04.2017