使用ASP.NET Core 3.x 构建 RESTful API P6 状态和路由

使用ASP.NET Core 3.x 构建 RESTful API P6 状态和路由

HTTP状态路由

.Net Core Web API 项目中,Controller 层是对外层,所以在 Controller 层之下的其它层(如:业务逻辑层,数据库访问层)是如何运作的,与 Controller层无关,所以针对业务结果,在 Controller 层对外表述的时候,我们需要根据也业务结果给出,具体的 HTTP 状态码.

分析一个 Action 方法,此 Action 存在于 CompaniesController.cs文件中.

/// <summary>
        /// 获取指定公司
        /// </summary>
        /// <param name="companyId">公司id</param>
        /// <returns></returns>
        [HttpGet("{companyId}")]   // URI Get api/Companies/{companyId}
        //[Route("{companyId}")]   //使用这种方式也能表示路由,但是不常用
        public async Task<IActionResult> GetCompany(Guid companyId)
        {
            //var exist = await _companyRepository.CompanyExistsAsync(companyId);
            //if (exist == false)
            //{
            //    return NotFound();
            //}

            //上面这种判断其实存在某种缺陷,那就是当前,我拿到了是存在的结果,但是在我拿到存在结果的同时,
            //另一个HTTP请求过来删除了我想要的公司资源,那么就会对下述的获取公司的业务逻辑产生影响,即会
            //出现并发问题,所以我们应该换成下面的这种形式更为保险一点.

            var company = await this._companyRepository.GetCompanyAsync(companyId);

            if (company == null)
            {
                return NotFound();   //404 NotFound
            }

            // 此处为什么我们要用Ok方法来返回结果,而不是用 new JsonResult(返回结果);  的方式来显式明确的
            // 返回Json数据呢,因为根据Http请求的要求,不一定要求返回的是Json数据,如果要求返回的是 XML呢?
            // 所以我们应该使用.Net Core 封装号的一些返回数据的方法,因为这些方法,可以根据请求,返回给消费者想要的
            // 数据格式的结果.

            return Ok(company);
        }

.Net Core 修改默认启动URI

我们修改项目下的launchSettings.json文件,添加"launchUrl": "api/companies"配置项,即表示启动时,默认URI是 网站地址/api/companies

{
  "profiles": {
    "Routine.Api": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "api/companies",
      "applicationUrl": "http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

使用Postman进行调试

  1. 获取所有公司

获取所有公司信息

  1. 获取指定公司信息

原文地址:https://www.cnblogs.com/HelloZyjS/p/12590092.html

时间: 2024-11-04 01:20:10

使用ASP.NET Core 3.x 构建 RESTful API P6 状态和路由的相关文章

使用ASP.NET Core 3.x 构建 RESTful API - 1.准备工作

使用ASP.NET Core 3.x 构建 RESTful API - 1.准备工作 学习记录.Net CoreWeb Api RESTful API Web API 简介: web API通常是指"使用HTTP协议并通过网络调用的API",由于它使用了HTTP协议,所以需要通过URL信息来指定端点. API 是 Application Programming Intrface 的缩写,是软件的外部接口. 也就是说,针对某个软件,人们可以知道它的外部功能,但并不知道(也不需要知道)它内

使用ASP.NET Core 3.x 构建 RESTful API P11 P12 ActionResult of T 以及 AutoMapper.md

使用ASP.NET Core 3.x 构建 RESTful API P11 P12 ActionResult of T 以及 AutoMapper AutoMapper对象映射 IActionResult 实际上针对IActionResult接口有一个实现类,ActionResult<T> 所以一般当我们知道明确的返回类型时,我们也应该明确定义Action方法的返回值类型,示例代码如下: /// <summary> /// 获取所有公司信息 /// </summary>

使用ASP.NET Core 3.x 构建 RESTful API - 3.4 内容协商

现在,当谈论起 RESTful Web API 的时候,人们总会想到 JSON.但是实际上,JSON 和 RESTful API 没有半毛钱关系,只不过 JSON 恰好是RESTful API 结果的表述格式.也就是说 RESTful API 还可以使用其它的表述格式,例如 xml 或私有的格式.这也就意味着,我们需要让 RESTful API 知道我们想要返回的格式.而这就是HTTP请求和响应的核心内容之一: Content Negotiation 内容协商 内容协商是这样一个过程:针对一个响

ASP.NET Core 入门教程 2、使用ASP.NET Core MVC框架构建Web应用

原文:ASP.NET Core 入门教程 2.使用ASP.NET Core MVC框架构建Web应用 一.前言 1.本文主要内容 使用dotnet cli创建基于解决方案(sln+csproj)的项目 使用Visual Studio Code开发基于解决方案(sln+csproj)的项目 Visual Studio Code Solution插件( vscode-solution-explorer)基础使用介绍 基于 .NET Core web项目模板构建 ASP.NET Core MVC We

ASP.NET Core WebApi使用Swagger生成api说明文档看这篇就够了

引言 在使用asp.net core 进行api开发完成后,书写api说明文档对于程序员来说想必是件很痛苦的事情吧,但文档又必须写,而且文档的格式如果没有具体要求的话,最终完成的文档则完全取决于开发者的心情.或者详细点,或者简单点.那么有没有一种快速有效的方法来构建api说明文档呢?答案是肯定的, Swagger就是最受欢迎的REST APIs文档生成工具之一! 为什么使用Swagger作为REST APIs文档生成工具 Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学

ASP.NET Core WebApi使用Swagger生成api

引言 在使用asp.net core 进行api开发完成后,书写api说明文档对于程序员来说想必是件很痛苦的事情吧,但文档又必须写,而且文档的格式如果没有具体要求的话,最终完成的文档则完全取决于开发者的心情.或者详细点,或者简单点.那么有没有一种快速有效的方法来构建api说明文档呢?答案是肯定的, Swagger就是最受欢迎的REST APIs文档生成工具之一! 为什么使用Swagger作为REST APIs文档生成工具 Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学

Spring MVC中使用 Swagger2 构建Restful API

1.maven依赖 <!-- 构建Restful API --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.6.0</version> </dependency> <dependency> <groupId>io.spr

springboot集成swagger2构建RESTful API文档

在开发过程中,有时候我们需要不停的测试接口,自测,或者交由测试测试接口,我们需要构建一个文档,都是单独写,太麻烦了,现在使用springboot集成swagger2来构建RESTful API文档,可以在访问接口上,直接添加注释 先介绍一下开发环境: jdk版本是1.8 springboot的版本是1.4.1 开发工具为 intellij idea 我们先引入swagger2的jar包,pom文件引入依赖如下: <dependency> <groupId>io.springfox&

spring boot 1.5.4 集成Swagger2构建Restful API(十八)

上一篇博客地址:springboot 1.5.4 整合rabbitMQ(十七) 1      Spring Boot集成Swagger2构建RESTful API文档 1.1  Swagger2简介 Swagger2官网:http://swagger.io/ 由于Spring Boot能够快速开发.便捷部署等特性,相信有很大一部分Spring Boot的用户会用来构建RESTful API.而我们构建RESTful API的目的通常都是由于多终端的原因,这些终端会共用很多底层业务逻辑,因此我们会