При использовании любой структуры REST (трикотаж, resteasy, spring-mvc) большую часть времени (постоянные) классы моделей не совпадают с представлениями ресурсов REST. Даже в большинстве случаев входящее json-представление (например, создание и обновление) отличается от исходящего json-представления (например, list, get, ..).Ищите рекомендации для соглашений об именах для разных представлений ресурсов REST
Я ищу несколько хороших соглашений об именах, чтобы разобраться в этом.
Пример структуры:
+-- my.comp.domain.Customer
+-- my.comp.rest.resource.CustomerResource (or CustomerController)
CustomerResource будет внутренне использовать Клиента сохраняться и извлечения данных. Но снаружи (объекты Request + Response) он будет использовать немного другую структуру.
То, что я сейчас:
+-- my.comp.rest.representation.CustomerRequest
+-- my.comp.rest.representation.SimpleCustomerResponse
+-- my.comp.rest.representation.SimpleCustomerCollectionResponse
+-- my.comp.rest.representation.ExtendedCustomerResponse
Это в основном простой POJO, содержащий только поле. Используемая структура REST будет использовать их для преобразования в json.
Кто-нибудь еще использует разные названия? Я открыт для предложений.
Когда вы возвращаете список, когда вы не проходите идентификатор клиента, тогда ваш URL должен описывать список i.e GET/customers –
в противном случае GET/customer/{id} –
Обновлен URL-адрес для всех случаев. Не нужно различать их на основе единственного числа/множественного числа, этого будет достаточно, чтобы определить все из них, чтобы сделать api простым. Каждый человек должен сделать свой выбор, а не путать слишком много соглашений. – DarkKnight