Нужно знать идеальные способы использования HATEOAS в моем случае использования. В моем приложении клиент получает доступ к конечной точке GET.
Конечная точка GET - https://localhost: 8080 / allEmployees
Ответ -
{
"employeeSummaries": [
"employee": {
"EmpID":001,
"firstName": "Arya",
"middleName": null,
"nickName": null,
"lastName": "STANWOOD"
},
"Address": {
"city": "London",
"country": "UK",
},
"link": [
{
"rel": "self",
"href": "https://localhost:8080/employee_details"
}
],
"employee": {
"EmpID":002,
"firstName": "Scott",
"middleName": null,
"nickName": null,
"lastName": "Brandley"
},
"Address": {
"city": "Newyork",
"country": "US",
},
"link": [
{
"rel": "self",
"href": "https://localhost:8080/employee_details"
}
]
}
Здесь, если клиент хочет увидеть полную информацию о сотруднике, он может получить ее, используя эту конечную точку. https://localhost: 8080 / employee_details - POST, полезная нагрузка будет, как,
{
"EmpID":001,
"Project":"yyy"
}
Ответ на этот POST получит все детали этого c идентификатора сотрудника.
Теперь я ожидаю, когда они получат доступ к конечной точке GET, я хочу, чтобы точная полезная нагрузка отображалась вместе со ссылкой. Ожидаемый:
{
"employeeSummaries": [
"employee": {
"EmpID":001,
"firstName": "Arya",
"middleName": null,
"nickName": null,
"lastName": "STANWOOD"
},
"Address": {
"city": "London",
"country": "UK",
},
"link": [
{
"rel": "self",
"href": "https://localhost:8080/employee_details"
}
]
//the payload for seeing Arya details
{
"EmpID":001,
"Project":"yyy"
},
"employee": {
"EmpID":002,
"firstName": "Scott",
"middleName": null,
"nickName": null,
"lastName": "Brandley"
},
"Address": {
"city": "Newyork",
"country": "US",
},
"link": [
{
"rel": "self",
"href": "https://localhost:8080/employee_details"
}
]
//the payload for seeing Scott details
{
"EmpID":002,
"Project":"xxx"
}
}
У меня будет empID и проект при доступе к GET. Я хочу добавить эти детали в ответ, чтобы клиенту было легче узнать, к каким конечным точкам он должен получить доступ и какую полезную нагрузку он должен предоставить.
Пожалуйста, предложите идеи для того же. Было бы намного лучше, если бы решение было в HATEOAS.
(PS - Приведенный выше пример только для справки, который я создал, что аналогично моему варианту использования.)