REST是“代表性状态转移”的首字母缩写,该体系结构样式在过去几年中非常流行。 RESTful API是根据REST的原理和准则构建的 。 RESTful API通常返回纯文本,JSON或XML作为响应。
RestSharp是一个开放源代码HTTP客户端库,可以轻松使用RESTful服务。 RestSharp提供了一个开发人员友好的界面来使用RESTful服务,同时抽象化了处理HTTP请求的内部复杂性。 RestSharp支持同步和异步请求。
本文讨论了如何与RestSharp一起使用以消费使用ASP.NET Core构建的服务。
若要使用本文中的代码示例,您应该在系统中安装Visual Studio 2019。 如果您还没有副本,则可以在此处下载Visual Studio 2019 。
创建一个ASP.NET Core API项目
首先,让我们在Visual Studio中创建一个ASP.NET Core项目。 假设系统中已安装Visual Studio 2019,请按照以下概述的步骤在Visual Studio中创建一个新的ASP.Net Core项目。
- 启动Visual Studio IDE。
- 点击“创建新项目”。
- 在“创建新项目”窗口中,从显示的模板列表中选择“ ASP.NET Core Web应用程序”。
- 点击下一步。
- 在“配置新项目”窗口中,指定新项目的名称和位置。
- 单击创建。
- 在“创建新的ASP.Net Core Web应用程序”窗口中,从顶部的下拉列表中选择.NET Core作为运行时,并选择ASP.NET Core 2.2(或更高版本)。 我将在这里使用ASP.NET Core 3.0。
- 选择“ API”作为项目模板以创建新的ASP.NET Core API应用程序。
- 确保未选中“启用Docker支持”和“配置HTTPS”复选框,因为我们此处将不再使用这些功能。
- 确保将身份验证设置为“无身份验证”,因为我们也不会使用身份验证。
- 单击创建。
按照这些步骤将在Visual Studio中创建一个新的ASP.NET Core API项目。 接下来,在“解决方案资源管理器”窗口中选择Controllers解决方案文件夹,单击“添加->控制器...”,然后选择“具有读/写操作的API控制器”。 将此新控制器命名为DefaultController。
我们将在本文的后续部分中使用该项目。
在ASP.NET Core API中实现DefaultController
打开DefaultController.cs文件,并用下面给出的代码替换其中的代码:
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
namespace RESTAPIDemo.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class DefaultController : ControllerBase
{
private readonly Dictionary<int, string> authors = new Dictionary<int, string>();
public DefaultController()
{
authors.Add(1, "Joydip Kanjilal");
authors.Add(2, "Steve Smith");
authors.Add(3, "Michele Smith");
}
[HttpGet]
public List<string> Get()
{
List<string> lstAuthors = new List<string>();
foreach (KeyValuePair<int,string> keyValuePair in authors)
lstAuthors.Add(keyValuePair.Value);
return lstAuthors;
}
[HttpGet("{id}", Name = "Get")]
public string Get(int id)
{
return authors[id];
}
[HttpPost]
public void Post([FromBody] string value)
{
authors.Add(4, value);
}
[HttpPut("{id}")]
public void Put(int id, [FromBody] string value)
{
authors[id] = value;
}
[HttpDelete("{id}")]
public void Delete(int id)
{
authors.Remove(id);
}
}
}
请参考上面的DefaultController类。 请注意,此类包含与每个HTTP动词GET,POST,PUT和DELETE对应的操作方法。 为了简单起见,我们在此处使用字典来存储和检索数据。 您可以使用网络浏览器或Postman或Fiddler之类的工具测试此API。 请注意,为简单起见,我已经在HttpPost方法中对ID进行了硬编码。 您应该以自己的方式实现它以生成唯一**。
到目前为止,一切都很好。 在以下各节中,我们将学习如何与RestSharp一起使用以使用我们构建的API。
创建客户端以使用API
我们将使用控制台应用程序作为客户端来使用我们之前构建的API。 假设系统中已安装Visual Studio 2019,请按照下面概述的步骤在Visual Studio中创建一个新的.NET Core控制台应用程序项目。
- 启动Visual Studio IDE。
- 点击“创建新项目”。
- 在“创建新项目”窗口中,从显示的模板列表中选择“控制台应用程序(.NET Core)”。
- 点击下一步。
- 在接下来显示的“配置新项目”窗口中,指定新项目的名称和位置。
- 单击创建。
这就是我们创建新的.NET Core控制台应用程序项目所要做的。
安装RestSharp NuGet软件包
要使用RestSharp,您应该从NuGet安装RestSharp软件包。 您可以通过Visual Studio 2019 IDE中的NuGet程序包管理器来执行此操作,也可以通过在NuGet程序包管理器控制台中执行以下命令来执行此操作:
Install-Package RestSharp
使用RestSharp消耗ASP.NET Core API
将RestSharp安装到项目中后,就可以开始使用它了。 首先,您将需要创建RestClient的实例。 下面的代码片段显示了如何实例化和初始化RestClient类。 请注意,我们正在将基本URL传递给RestClient类的构造函数。
RestClient client = new RestClient("http://localhost:58179/api/");
接下来,您应该通过传递资源名称和要使用的方法来创建RestRequest类的实例。 以下代码段显示了如何实现此目的。
RestRequest request = new RestRequest("Default", Method.GET);
最后,您需要执行请求,反序列化响应,然后根据需要将其分配给一个对象,如下面的代码片段所示。
IRestResponse<List<string>> response = client.Execute<List<string>>(request);
以下是完整的代码清单,供您参考。
using RestSharp;
using System;
using System.Collections.Generic;
namespace RESTSharpClientDemo
{
class Program
{
private static RestClient client = new
RestClient("http://localhost:58179/api/");
static void Main(string[] args)
{
RestRequest request = new RestRequest("Default",
Method.GET);
IRestResponse<List<string>> response =
client.Execute<List<string>>(request);
Console.ReadKey();
}
}
}
要使用RestSharp发出POST请求,可以使用以下代码:
RestRequest request = new RestRequest("Default", Method.POST);
request.AddJsonBody("Robert Michael");
var response = client.Execute(request);
RestSharp可在多个.NET平台上使用,这就是它如此受欢迎的原因之一。 RestSharp的自动反序列化功能也值得注意。 您可以在GitHub上了解有关RestSharp的更多信息。
From: https://www.infoworld.com/article/3489481/how-to-consume-an-aspnet-core-web-api-using-restsharp.html