如何使用 Sitefinity oData(Web 服务)获取内容项的完整内容 URL 并将其添加到响应数据中?

How to get full content URL of content item using Sitefinity oData (Web Service) and add it to response data?

我正在尝试使用 Sitefinity 的 Web 服务功能从数据库中查询内容项列表,在本例中是事件列表。到目前为止,我已经成功地获得了一个响应,它是一个代表我的事件数据的对象数组。这是事件对象的一个​​示例:

{"Id":"f3fd8515-3279-6e2e-aa53-ff00001c1b3c",
"LastModified":"2021-05-28T16:40:08Z",
"PublicationDate":"2021-05-28T16:40:08Z",
"Title":"Future event 1",
"Description":"",
"DateCreated":"2021-05-28T16:40:08Z",
"IncludeInSitemap":true,
"UrlName":"future-event-1",
"MetaTitle":"",
"MetaDescription":"",
"ToggleCalendarBtns":true,
"CTABtnContext":"",
"CTABtnText":"Event Website",
"CTABtnURL":"#",
"AllowComments":true,
"EventStart":"2021-07-01T17:00:00Z",
"EventEnd":"2021-07-01T18:00:00Z",
"ContactEmail":null,
"ContactWeb":null,
"Street":"",
"City":"",
"Country":"Virtual",
"State":"",
"ContactName":"",
"ContactCell":"",
"ContactPhone":"",
"Content":"",
"Summary":"",
"IsRecurrent":false,
"RecurrenceExpression":null,
"TimeZoneId":"Central Standard Time",
"AllDayEvent":false,
"Location":"",
"ParentId":"62e1290c-2f0f-4a5d-8def-6c46fc900657",
"EventStartUtcOffset":-300.0,
"EventEndUtcOffset":-300.0,
"EventStartWithOffset":"2021-07-01T12:00:00Z",
"EventEndWithOffset":"2021-07-01T13:00:00Z"}

是否可以修改 Sitefinity 的 Web 服务功能以向此数据对象添加额外的 属性 以获取此内容项的实际 URL?我的意思是返回的“Url名称”属性 只是在页面上查看它所需的完整 URL 事件的部分片段:

Url姓名属性:future-event-1

完整事件 Url:/2021/07/01/default-calendar/future-event-1

如何让 Sitefinity 的 oData 响应包含完整事件 Url,就像上面第二个示例中那样,而不仅仅是 UrlName slug?

您可以执行以下操作:

  1. 转到管理 > 设置 > 高级 > Web 服务 > 路由 > 前端 > 服务 > {您的服务} > 类型 > Telerik.Sitefinity.Events.Model.Event > 属性 映射

  2. 创建类型为 Persistent属性Mapping 的新映射(当您单击“新建”时,您将在下拉列表中看到它)。

  3. 为永久名称和名称输入 ItemDefaultUrl。保存。

现在,当您查询单个事件的数据时,例如:

/api/events/events/8dab99e3-fed6-4e8e-887f-e23f56ec32c4

或所有事件

/api/events/events

新的 属性 将包含在响应中,并且应该包含您需要的内容。