微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我正在尝试使用 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 的网络服务功能,以向该数据对象添加附加属性,以获取内容项的实际 URL?我的意思是,返回的“UrlName”属性只是在页面上查看它所需的事件完整 URL 的部分片段:

UrlName 属性future-event-1

完整的活动网址:/2021/07/01/default-calendar/future-event-1

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

解决方法

您可以这样做:

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

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

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

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

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

或所有事件

/api/events/events

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。