У меня есть простая служба отдыха, которая возвращает ответ, когда операция GET выполняется вместе со ссылками HATEOS. Когда служба развернута на сервере и доступна через URL-адрес балансировщика нагрузки (Https), раздел ссылок содержит URL-адрес с «http» вместо «https». Любой пример решения / кода для этого конкретного scneario поможет мне.
Например:
Если операция GET выполняется с использованием URL-адреса (https://servicename.example.com), то я ожидаю, что тот же URL-адрес будет в разделе ссылок. Но я получаю что-то вроде ниже.
Тело ответа:
{
"fieldA": null,
"fieldB": null,
"links": [
{
"rel": "self",
"href": "http://servicename.example.com" // It has to be https
}
]
}
Ниже приведена строка кода, которая добавляет ссылки на Ресурс Отдыха, которые будут доступны потребителю.
resource.getLinks().add(linkTo(methodOn(ExampleController.class).methodInExampleController(arg a, arg b)).withSelfRel());
Ресурс, который предоставляется потребителю, расширяет другой класс "ResourceSupport", где объявляется поле с именем links, имеющее тип List.
Пример класса ресурса:
imnport com.examplepackage.ResourceSupport
public SampleResource extends ResourceSupport{
private String fieldA,
private String fieldB,
//setters and getters
}
Пример класса, в котором объявлены ссылки HATEOS
import org.springframework.hateoas.Identifiable;
import org.springframework.hateoas.Link;
public ResourceSupport implements Identifiable<Link>{
@JsonInclude(Include.NON_EMPTY)
private final List<Link> links = new ArrayList();
@JsonProperty("links")
public List<Link> getLinks() {
return this.links;
}
}
SPRING HATEOS версия: spring-hateos0.24.0.RELEASE