Как проинформировать клиента о полезной нагрузке (поле со значением), которую он должен POST, используя Spring HATEOAS - PullRequest
0 голосов
/ 03 марта 2020

Нужно знать идеальные способы использования 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 - Приведенный выше пример только для справки, который я создал, что аналогично моему варианту использования.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...