Мой сервис имеет 3 вида классов моделей: User
, Project
, Simulation
.
Проблема в том, что Project
s состоят из 6 уровней.
User
> Proejct(lv1)
> Project(lv2)
> Project(lv3)
> Project(lv4)
> Project(lv5)
> Project(lv6)
> Simulation
Я создал URL-адрес конечной точки RESTful
на основе иерархии,
и конечный результат выглядит следующим образом.
http://MY_SERVER.com/rest/project/team-members/{userId}/divisions/{divisionId}/products/{productId}/bgatypes/{bgaTypeId}/devices/{deviceId}/ballcounts/{ballCountId}/pkgsizes/{pkgSizeId}/simulations
Интересно, неправильно ли я оформляю протокол RESTful, поскольку URL становится слишком длинным.
Это лучше?использовать параметры запроса вместо переменных пути?
Любой совет будет благодарен.
+ Еще одна идея
Я думаю изменить, чтобы сделать его короче иэто моя идея.
Так как у каждого результата есть только один родитель, я хочу запросить их, указав только один параметр, равный parentId
, так что это будет выглядеть так.
http://MY_SERVER.com/rest/project/team-members
http://MY_SERVER.com/rest/project/divisions?userId=user1
http://MY_SERVER.com/rest/project/products?divisionId=division32
http://MY_SERVER.com/rest/project/bgatypes?productId=product402
http://MY_SERVER.com/rest/project/devices?bgaTypeId=bgatype777
http://MY_SERVER.com/rest/project/ballcounts?deviceId=device139
http://MY_SERVER.com/rest/project/pkgsizes?ballCountId=ballcount587
http://MY_SERVER.com/rest/project/simulations?pkgSizeId=pkgsize591
Это против протокола RESTful?Какая идея лучше?