首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

《ASP.NET Core 与 RESTful API 开发实战》-- (第9章)-- 读书笔记(上)

,分为白盒测试、黑盒测试和灰盒测试 从测试执行方式上,分为手动测试和自动化测试 从测试所涉及层次上,分为单元测试、集成测试和系统测试 单元测试由开发人员完成,主要用来测试程序中类以及其中方法是否能够正确运行...在添加单元测试方法时,应遵循 Arrange-Act-Access 模式,使测试方法代码更加规范,该模式指明了每个测试方法由以下3部分组成: Arrange:测试进行准备操作,如设置测试数据、变量和环境等...AuthorController Response 属性默认为,通过设置 ControllerContext,使得 AuthorController 对象 Request 和 Response...authorController.GetAuthorsAsync(parameters); // Assert List resourceCollection = actionResult.Value...当数据准备好后,调用待测试方法,并得到该方法返回值,之后使用 Assert 类提供静态方法来验证结果是否符合预期

1K20

dotNET Core 3.X 使用 Web API

AddUser(User user) { return Ok(); } 4、使用 Postman 调用,没有添加任何参数,返回结果 200 ?...错误状态码详细信息 之前版本中,如果接口返回一个 BadRequest,是没有内容,只有状态码,如下: ? 加上 [ApiController] 特性后,结果如下: ?...HTTP 状态正确返回状态码有助于客户端分析请求返回结果和问题排查,常用状态码如下: ?...正确做法应该是对参数做相关校验最终返回相应 4XX 状态码。...同样接口在前端不同场景下需要返回不一样字段数据,一种方式是创建很多不同接口,返回不同 Dto 结果,这样做非常繁琐,可以通过 ExpandoObject 来实现按客户端需要进行返回结果,

1.5K30
您找到你想要的搜索结果了吗?
是的
没有找到

ASP.Net MVC开发基础学习笔记:三、Razor视图引擎、控制器与路由机制学习

因此,我们既可以在Action中返回视图,还可以返回文件流、重定向、内容等结果。...,通过访问浏览器端代码,发现是一个内容; public ActionResult Empty() { return new EmptyResult(); } ?   ...(3)在MapRoute方法中所有URL请求定义了一个defaults默认值:controller则指向Home,action则指向Index,而id则是可选,非必须要。   ...我们可以通过为RouteValueDictionary字典对象添加键"httpMethod", 值一个HttpMethodConstraint对象路由规则添加HTTP 谓词限制,比如限制一条路由规则只能处理...:    ①访问 www.mywebsite.com/hotels/list-chengdu-100,200-3 会访问酒店频道列表页,并传入查询参数(price100,200,star3);

1.8K30

小范笔记:ASP.NET Core API 基础知识与Axios前端提交数据

[Bind] 指定要包含前缀和属性,以进行模型绑定。 [Consumes] 指定某个操作接受数据类型。 [Produces] 指定某个操作返回数据类型。...前端提交是 Json 对象,遵循 Json 格式规范,那么 [FromBody] 把它转为 Object 对象。...下面使用这些属性来指定 Controller 或 Action 接受 HTTP 方法、返回数据类型或状态代码。...:xxx/aaa 四,返回类型 1, 查询备忘表 Microsoft.AspNetCore.Mvc 命名空间中,包含控制 MVC 各种操作方法和类型,笔者从命名空间中抽出与 MVC 或 API 返回类型有关类型...2, 返回数据类型 特定类型 IActionResult 类型 ActionResult 类型 Action return ,返回数据类型必定是上面三种。

5.5K00

ASP.NET MVCView是如何被呈现出来

通过上面的代码片断可以看出ViewContext是ControllerContext子类,用于表示状态数据ViewData、ViewBag和TempData对应着ControllerBase同名属性...也就是说当执行从Controller某个Action方法返回ViewResult时候,通过创建ViewContext保持状态数据直接来源于Controller对象。...IView接口类型对象,而是一个类型System.Web.Mvc.ViewEngineResult对象。...实际上当这两个方法被调用时候,会先采用缓存方式调用相应ViewEngine,如果返回Null,则以不采用缓存方式再次调用它们。...在FindView方法内部会直接调用ViewEngineCollection属性FindView方法,如果返回ViewEngineResult包含一个具体View(View属性不为),则直接返回

1K80

了解ASP.NET MVC几种ActionResult本质:HttpStatusCodeResult & RedirectResultRedirectToRouteResult

,正常情况下返回200 OK”。...System.Web.Mvc.HttpStatusCodeResult使我们很容易地返回一个指定状态HTTP响应。...如下面的代码片断所示,HttpStatusCodeResult具有StatusCode和StatusDescription两个只读属性分别表示响应状态码和状态描述信息。...,第7章“Action执行”中筛选器AuthorizeAttribute在授权检验失败情况下返回就是一个HttpUnauthorizedResult对象。...如下面的代码片断所示,RedirectResult具有两个只读属性Permanent和Url,前者表示采用永久重定向还是暂时重定向,默认值False,后者表示重定向目标地址,既可以采用绝对地址(比如

1.2K100

通过极简模拟框架让你了解ASP.NET Core MVC框架设计与实现:请求响应

200代码,7个对象——让你了解ASP.NET Core框架本质》让很多读者对ASP.NET Core管道有了真实了解。...我们在《[上篇]:路由整合》将定义在Controller类型中Action方法简化成只返回Task或者Void方法,并让方法自身去完成包括对请求予以相应所有请求处理任务,真实MVC框架并非如此...如下面的代码片段所示,我们将Action方法FooAsync和Bar返回类型分别替换成Task和IActionResult,具体返回都是一个ContentResult对象...由于FooAsync方法将内容类型设置 “text/html” ,所以浏览器会将返回内容作为一个HTML文档进行解析,但是Bar方法将内容类型设置 “text/plain” ,所以返回内容会原封不动地输出到浏览器上...如代码片段所示,Convert方法将返回个内容类型“text/plain”ContentResult对象,原始对象字符串描述(ToString方法返回值)将作为响应主题内容。

1.1K30

了解ASP.NET MVC几种ActionResult本质:JavaScriptResult & JsonResult

返回类型JavaScriptResultAction方法一般用于处理Ajax请求。...我们在默认Action方法Index中创建一个包含三个商品ShoppingCart对象,并将其作为Model呈现在对应View中。...但是对于后台程序来说,数据却是通过一个基于某种CLR类型对象来承载,当客户端调用某个Action方法并希望以JSON格式返回请求数据时,ASP.NET MVC需要有一种机制将CLR对象转换成JSON...如下面的代码片断所示,JsonResult具有一个object类型属性Data表示需要被转换成JSON格式数据对象。...RecursionLimit用于设置被序列化对象和反序列化生成对象结构允许层级数,默认值100。

1.7K80

.net 温故知新【12】:Asp.Net Core WebAPI 中Rest风格

在Rest风格中使用状态码来标识返回结果,其中常用200、201、400、401、404、410、500等。...返回状态码 在RPC中Post请求我们习惯如果请求已经在服务器处理,不管处理结果是否正确,我们都返回200状态码。然后在返回数据中用其它信息来标识业务结果。...因此我们在实际设计中可能会进行Rest裁剪,我们既使用RPC返回结果,同时多用准确状态码,不用什么都返回200。...使用RPC风格,尽量使用合理谓词,不知道使用什么谓词时候就用POST,Get Delete参数尽量用资源定位URL,业务错误服务端返回合适状体吗,不知道返回什么就返回400,如果请求处理成功就用200...并且保留了参数URL方式。 关于返回状态问题可以有两种方式,一种是直接在ControllerBase.Response 响应中指定返回状态码。

26540

了解ASP.NET MVC几种ActionResult本质:EmptyResult & ContentResult

返回类型JavaScriptResultAction方法一般用于处理Ajax请求。...我们在默认Action方法Index中创建一个包含三个商品ShoppingCart对象,并将其作为Model呈现在对应View中。...但是对于后台程序来说,数据却是通过一个基于某种CLR类型对象来承载,当客户端调用某个Action方法并希望以JSON格式返回请求数据时,ASP.NET MVC需要有一种机制将CLR对象转换成JSON...如下面的代码片断所示,JsonResult具有一个object类型属性Data表示需要被转换成JSON格式数据对象。...RecursionLimit用于设置被序列化对象和反序列化生成对象结构允许层级数,默认值100。

1.7K50

ASP.NET MVC是如何运行(4): Action执行

在Execute方法中,通过作为方法参数RequestContext对象创建ControllerContext对象,并通过包含在RequestContext中RouteData得到目标Action名称...如果参数类型字符串或者简单值类型,我们直接根据参数名称和Key进行匹配;对于复杂类型(比如之前例子中定义包含Contrller和Action名称数据类型SimpleModel),则通过反射根据类型创建新对象并根据属性名称与...和真正ASP.NET MVC一样,定义在ContrllerAction方法返回一个ActionResult对象,我们通过指定它Execute方法是先对请求响应。...三、ActionResult 我们具体ActionResult定义了一个ActionResult抽象基类。...context); 4: } 在之前创建例子中,Action方法返回是一个类型RawContentResult对象

1.1K101

ASP.NET MVC 5 - 验证编辑方法(Edit method)和编辑视图(Edit view)

最后一个参数是一个匿名对象(anonymous object),用来生成路由数据 (在本例中,ID 4 )。...查看App_Start\RouteConfig.cs文件中以下代码。 MapRoute方法是使用HTTP请求路由查找到正确控制器(controller)和行动方法,并提供了可选ID参数。...他们得到一个电影对象(或对象列表中,如本案例Index),并把模型数据传递给视图。Create方法传递一个影片对象给Create视图。...前几行代码会创建一个List对象来保存数据库中电影流派。 下面的代码是从数据库中检索所有流派 LINQ 查询。...下面的代码演示如何检查movieGenre参数。如果它不是代码进一步指定了所查询电影流派。 if (!

6.7K110

《ASP.ENT Core 与 RESTful API 开发实战》-- (第5章)-- 读书笔记(下)

201 Created 状态码,并在响应消息头中包含 Location 项,它值是新创建资源 URL // 第一个参数是要调用 Action 路由名称 // 第二个参数是包含要调用...{ authorId = authorCreated.Id }, authorCreated); } 当数据发生变化时,EF Core 会将实体对象属性及其状态修改,只有在调用 DbContext...var bookDto = Mapper.Map(book); return bookDto; } 当添加一个子级资源,将 BookForCreationDto 对象映射...Map 方法另一个重载 object Map(object source, object destination, Type sourceType, Type destinationType); 它能将源映射到一个已经存在对象...,不同是获取需要部分更新 Book 实体后,首先将它映射 BookForUpdateDto 类型对象,其次使用 JsonPatchDocument ApplyTo 方法将更新信息应用到映射后

53130

.Net Core实现健康检查

这个示例展示数据库运行状态,他在其验证数据库连接并返回相应结果 [Route("health")] public ActionResult Health()...,如果连接到数据库时出现任何连接问题,它将显示一条包含200状态代码和503状态代码消息。...现在基于这些结果状态码,我们可以监视系统采取相关操作。 从.NET Core2.2开始,我们不需要为运行状态在去自定义检查控制器和接口,而是框架本身已经我们提供了运行状况检查服务。...,结果是HealthCheckResult对象,该对象包含3个选项 Healthy 健康 Unhealthy 不良 Degraded 降级 option 2 实现IHealthCheck接口并实现CheckHealthAsync...自定义状态码 在之前我们也说过200健康,503不健康那么Healthcheck服务甚至通过以下方式使用其options对象提供自定义状态代码我们提供了更改此默认状态码。

70310
领券