Как получить значение поля члена команды, которое является классификацией в веб-сервисах sitefinity 12 с использованием odata и javascript

Я использую ajax для запроса веб-сервисов в sitefinity. Я могу успешно получить данные членов команды с помощью этого APIURL:

localhost/api/lawyerswebservice/teammembers?$expand=RelatedTeam,PrimaryImage;

Однако я не могу получить доступ ни к каким полям, которые являются классификациями. Например, если я делаю следующий запрос:

localhost/api/lawyerswebservice/teammembers?$expand=PositionTypes;

Я получаю консольную ошибку:

{"error":{"code":"Unknown","message":"Property 'PositionTypes' on type 'Telerik.Sitefinity.DynamicTypes.Model.Team.TeamMember' is not a navigation property or complex property. Only navigation properties can be expanded."}}

Мы будем очень благодарны за любые советы о том, как получить его данные. Спасибо.


person Caleb    schedule 09.12.2019    source источник


Ответы (2)


  • Перейдите в Дополнительные настройки => Веб-службы => [Ваша служба] => Типы => [Ваш тип] => Сопоставления свойств.
  • Добавьте новое сопоставление свойства навигации.
  • Введите имя нового свойства. Оно должно быть уникальным.
  • В поле «Тип преобразователя» введите «Telerik.Sitefinity.Web.Services.Contracts.TaxonomyRelationResolver».
  • Добавьте параметр с ключом «propName» и значением имени поля таксономии (например, «Категории»)
  • Сохранить изменения

ССЫЛКА: https://www.eveliko.com/blogs/blog-details/public/2017/06/06/exposing-taxonomy-field-in-sitefinity-odata-service

person Amit Joshi    schedule 10.12.2019
comment
Спасибо за ответ, это было именно то, что мне было нужно. - person Caleb; 10.12.2019

По умолчанию поля классификации не возвращаются в результатах.

Объяснение можно найти в

администрирование> настройки> дополнительные> веб-службы> маршруты> внешний интерфейс> услуги> ваш сервис> типы> ваш тип> сопоставления свойств> типы позиций

Там вы найдете флажок «Выбрано по умолчанию», который не отмечен.

Описание:

«Это параметр, который определяет, какие свойства будут возвращаться неявно при запросе типа службы. Например, теги и категории не являются SelectedByDefault, поскольку они являются свойствами, которые вызывают запросы к базе данных и будут накладными расходами, если они выбраны по умолчанию для большого количества Предметы."

Если вы отметите его, то сервис начнет возвращать идентификатор выбранного таксона, по которому вы сможете получить его название.

person Veselin Vasilev    schedule 10.12.2019