创建自定义SharePoint REST服务指南

在SharePoint环境中,创建自定义REST服务可以增强其功能,使其更加灵活和强大。本文将详细介绍如何在SharePoint中创建和部署一个自定义的REST服务。

准备工作

在开始之前,请确保已经安装了Visual Studio和SharePoint开发工具。此外,还需要有对SharePoint服务器的访问权限,以便进行必要的配置和部署

创建SharePoint项目

首先,需要创建一个空的SharePoint项目。在Visual Studio中,选择“文件”->“新建”->“项目”,然后选择“SharePoint”类别下的“2013”或“2016”版本的“空SharePoint项目”。将项目设置为“农场解决方案”。

添加ISAPI映射文件夹

接下来,需要为服务添加一个ISAPI映射文件夹。在项目上点击右键,选择“添加”->“SharePoint”->“SharePoint映射文件夹”。在弹出的对话框中,选择“ISAPI”文件夹并点击“确定”。

创建WCF服务和接口

现在,需要创建WCF服务及其接口。在项目中添加两个类文件,分别命名为“ServiceApiToken.cs”和“IServiceApiToken.cs”。以下是这两个类的代码示例:

using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Web; namespace ApiToken { [ServiceContract] public interface IServiceApiToken { [OperationContract] [WebGet(ResponseFormat = WebMessageFormat.Json)] string GetResponse(); } } using System; using System.Net; using System.Runtime.Serialization.Json; using System.Text; namespace ApiToken { public class ServiceApiToken : IServiceApiToken { public string GetResponse() { return "Executed"; } } }

构建项目并获取公钥

在实现服务和接口之后,需要构建项目并找到程序集的公钥。可以通过Visual Studio命令提示符使用`sn -T`命令和程序集的路径来找到公钥。

添加服务端点和web.config

由于SharePoint项目模板中没有svc模板,因此需要添加一个文本文件并将其重命名为“.svc”文件。在“.svc”文件中,需要指定之前找到的公钥。

<%@ Assembly Name="ApiToken, Version=1.0.0.0, Culture=neutral, PublicKeyToken=fe8eeb150d52c287" %> <%@ ServiceHost Service="ApiToken.ServiceApiToken" %>

对于web.config,需要添加一个文本文件并将其重命名为“web.config”。以下是web.config的配置示例:

<configuration> <system.serviceModel> <behaviors> <serviceBehaviors> <behavior> <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="false" /> </behavior> </serviceBehaviors> <endpointBehaviors> <behavior name="customApiToken"> <webHttp /> </behavior> </endpointBehaviors> </behaviors> <services> <service name="ApiToken.ServiceApiToken"> <endpoint address="" behaviorConfiguration="customApiToken" binding="webHttpBinding" contract="ApiToken.IServiceApiToken"> <identity> <dns value="localhost" /> </identity> </endpoint> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> </service> </services> </system.serviceModel> </configuration>
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485