Навигационные ссылки не возвращаются при использовании JSON для OData (с использованием Apache Olingo для Java)

При использовании приведенного ниже кода с использованием XML он работает отлично, то есть навигационные ссылки возвращаются успешно. Однако, когда я изменяю формат на "json" или "application/json", список навигационных ссылок links2 становится пустым, что означает, что rental.getNavigations() возвращает пустой список.

Может кто-нибудь помочь, пожалуйста? Я использую Apache Olingo для Java OData v4.

Спасибо

URI uri = client.newURIBuilder(serviceRoot)
                 .appendEntitySetSegment("Rentals")
                 .appendKeySegment(1).format("application/xml").build();

ODataRetrieveResponse<ODataEntity> response2 = client.getRetrieveRequestFactory().getEntityRequest(uri).execute();
ODataEntity rental = response2.getBody();

        List<ODataLink> links2 = rental.getNavigationLinks();
        for (ODataLink link : links2) {
            System.out.println(link.getRel());
            System.out.println(link.getName());
            URI linkUri = client.newURIBuilder(serviceRoot)
                      .appendNavigationSegment(link.getLink().toString()).format("atom").build();
            ODataRetrieveResponse<ODataEntity> responseCustomer
                    = client.getRetrieveRequestFactory().getEntityRequest(linkUri).execute();
            ODataEntity cust = responseCustomer.getBody();
            if(link.getName().equals("Stock"))
                System.out.println(cust.getProperty("Status").getValue().toString()); 
            else System.out.println(cust.getProperty("Name").getValue().toString()); 
       } 

1 ответ

odata.metadata=full параметр формата необходимо получить odata.navigationLink свойства, отображаемые в ответе JSON. добавлять odata.metadata=full к варианту формата при построении client, Полный формат должен быть application/json;odata.metadata=full, Если у вас есть доступ к заголовкам запроса через client объект, вы могли бы рассмотреть возможность установки Accept заголовок вместо.

Другие вопросы по тегам