欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何使用RestSharp使用ASP.NET Core Web API

程序员文章站 2022-03-10 22:48:08
...

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项目。

  1. 启动Visual Studio IDE。
  2. 点击“创建新项目”。
  3. 在“创建新项目”窗口中,从显示的模板列表中选择“ ASP.NET Core Web应用程序”。
  4. 点击下一步。
  5. 在“配置新项目”窗口中,指定新项目的名称和位置。
  6. 单击创建。
  7. 在“创建新的ASP.Net Core Web应用程序”窗口中,从顶部的下拉列表中选择.NET Core作为运行时,并选择ASP.NET Core 2.2(或更高版本)。 我将在这里使用ASP.NET Core 3.0。
  8. 选择“ API”作为项目模板以创建新的ASP.NET Core API应用程序。
  9. 确保未选中“启用Docker支持”和“配置HTTPS”复选框,因为我们此处将不再使用这些功能。
  10. 确保将身份验证设置为“无身份验证”,因为我们也不会使用身份验证。
  11. 单击创建。

按照这些步骤将在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对应的操作方法。 为了简单起见,我们在此处使用字典来存储和检索数据。 您可以使用网络浏览器或PostmanFiddler之类的工具测试此API。 请注意,为简单起见,我已经在HttpPost方法中对ID进行了硬编码。 您应该以自己的方式实现它以生成唯一**。

到目前为止,一切都很好。 在以下各节中,我们将学习如何与RestSharp一起使用以使用我们构建的API。

创建客户端以使用API

我们将使用控制台应用程序作为客户端来使用我们之前构建的API。 假设系统中已安装Visual Studio 2019,请按照下面概述的步骤在Visual Studio中创建一个新的.NET Core控制台应用程序项目。

  1. 启动Visual Studio IDE。
  2. 点击“创建新项目”。
  3. 在“创建新项目”窗口中,从显示的模板列表中选择“控制台应用程序(.NET Core)”。
  4. 点击下一步。
  5. 在接下来显示的“配置新项目”窗口中,指定新项目的名称和位置。
  6. 单击创建。

这就是我们创建新的.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