首页
学习
活动
专区
圈层
工具
发布

从头编写 asp.net core 2.0 web api 基础框架 (2)

所以这是一个客户端发生的错误, 程序为让客户端知道是它引起了错误, 就应该返回一个Bad Request 400 (Bad Request表示客户端引起的错误)的 Status Code....但是如果body数据的属性有问题, 比如说name没有填写, 或者name太长, 那么在执行action方法的时候就会报错, 这时候框架会自动抛出500异常, 表示是服务器的错误, 这是不对的....这种错误是由客户端引起的, 所以需要返回400 Bad Request错误....其他的验证注解都有一个属性叫做ErrorMessage (string), 表示如果验证失败, 就会把ErrorMessage的内容添加到错误结果里面去....和Value的对们, 一个name对应着model的一个属性, 它也包含了一个针对每个提交的属性的错误信息的集合.

1.9K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    『JSA宏神助攻之五』使用搭建本地web服务让JSA宏连接本地文件读写

    在JSA宏中,没有办法对本地的文件进行读写,虽然仿效VBA实现了一个FreeFile的函数来处理读写,但也仅限于文本文件的读写。...在JSA上没有,如何才能创造让它产生有?最有效的方式,就是提供一些外部服务,它来调用就完事了。这样的方式,也是无限扩展JSA宏的能力边界的一种非常有效的手段。...如何搭建这个web服务,可能各路编程神仙又跑出来说用python/nodejs/r等各种方式搭建最方便啦,几句代码就立马开启了一个web服务。...response.OutputStream.Write(errorMessage, 0, errorMessage.Length); return;...response.OutputStream.Write(errorMessage, 0, errorMessage.Length); } } } }

    58110

    从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之二 || 后端项目搭建

    从表层来说,除get外的其他方法,没有什么区别,都是一样的。从深层来说包括 get在内的所有方法都是一模一样的,没有任何区别。...所以这是一个客户端发生的错误, 程序为让客户端知道是它引起了错误, 就应该返回一个Bad Request 400 (Bad Request表示客户端引起的错误)的 Status Code....但是如果body数据的属性有问题, 比如说name没有填写, 或者name太长, 那么在执行action方法的时候就会报错, 这时候框架会自动抛出500异常, 表示是服务器的错误, 这是不对的....这种错误是由客户端引起的, 所以需要返回400 Bad Request错误....其他的验证注解都有一个属性叫做 ErrorMessage (string), 表示如果验证失败, 就会把ErrorMessage的内容添加到错误结果里面去.

    1.5K20

    【 .NET Core 3.0 】框架之二 || 后端项目搭建

    1、是你的项目创建的时候,勾选了 Https 选项,如果你还没有创建,那就可以不要勾选那个 HTTPS选项。...所以这是一个客户端发生的错误, 程序为让客户端知道是它引起了错误, 就应该返回一个Bad Request 400 (Bad Request表示客户端引起的错误)的 Status Code....但是如果body数据的属性有问题, 比如说name没有填写, 或者name太长, 那么在执行action方法的时候就会报错, 这时候框架会自动抛出500异常, 表示是服务器的错误, 这是不对的....这种错误是由客户端引起的, 所以需要返回400 Bad Request错误....其他的验证注解都有一个属性叫做 ErrorMessage (string), 表示如果验证失败, 就会把ErrorMessage的内容添加到错误结果里面去.

    2.5K20

    dotNET Core 3.X 使用 Web API

    这个结果不是我们所期望的,之前没有 [ApiController] 特性的时候,需要在接口方法中处理,如下: [HttpPost] [Route("adduser")] public ActionResult...错误状态码详细信息 之前的版本中,如果接口返回一个 BadRequest,是没有内容的,只有状态码,如下: ? 加上 [ApiController] 特性后,结果如下: ?...基类 在 3.x 中创建控制器后,默认的基类为 ControllerBase ,该类中提供了 OK、BadRequest 等常用方法给我们使用。...错误信息统一返回 之前的文章中有讲过使用过滤器的方式来做到结果的统一返回。这里介绍另一种方式,使用 ConfigureApiBehaviorOptions ,可以让我们自定义错误信息的返回内容和格式。...最后 本文只是涉及了在 Web API 中比较常用的一些功能点,限于篇幅,每个点并没有写的非常深入,也较少涉及原理,但我们在学习过程中,除了实现效果外还应该深入去了解其中细节和原理。

    2K30

    从头编写 asp.net core 2.0 web api 基础框架 (5) EF CRUD

    所以如果能有一种方法可以mock持久化相关的代码,然后再测试,就会知道错误不是发生在持久化部分了,这就可以用Repository Pattern了。...目前数据库的Material表没有数据,可以手动添加几个,也可以把数据库的Product数据删了,改一下种子数据那部分代码: namespace CoreBackend.Api.Entities {...传进去一个productId,如果repository返回的是空list可能会有两种情况:1 product不存在,2 product存在,而它没有下属的material。...结果都没有问题!!! 但是看看上面controller里面的代码,到处都是映射,这种手写的映射很容易出错,如果entity有几十个属性,然后在多个地方需要进行映射,那么这么写实在太糟糕了。...添加到context的内存中(姑且这么说),但是还没有更新到数据库。

    3.9K60

    dotNET Core WebAPI 统一处理(返回值、参数验证、异常)

    string.IsNullOrEmpty(errorMessage)) { return BadRequest(errorMessage);...https://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations(v=vs.110).aspx 上面的示例代码将错误信息的收集写在了接口方法中...,这是一个很不好的做法,仅仅实现了功能,下面将通过过滤器的方式来进行重构,统一处理错误信息 重构 添加名为 ValidateModelAttribute 的过滤器类,继承 ActionFilterAttribute...结果实体类 接口的返回值需要统一的格式,下面的属性字段是我认为必须要有的 Result:返回的结果 Message:出现错误或需要提示时的提示文本内容 Code:调用成功、失败或出错时的编码 ReturnStatus...field : null; Message = message; } } 将错误信息的收集移到了 ValidationFailedResultModel 类中,所以 ValidateModelAttribute

    11.8K60

    nestjs搭建HTTP与WebSocket服务

    最近在做一款轻量级IM产品,后端技术栈框架使用了nodejs + nestjs作为服务端。...服务端响应封装(ServerResponseWrapper) 众所周知,一般的服务端都会对原始返回数据进行一定的包装,增加返回码、错误消息等来明确的指出具体的错误内容,在我们的服务也不例外。...string; /** * 错误信息(如有,例如返回码非成功码) */ errorMessage?...(这点主要是为了匹配”请求-响应“一来一回机制) 完成配置后,我们可以采用如下的步骤进行事件发送: 发送完成后,就会看到postman的打印和nodejs服务控制台的打印,符合我们的预期: 当然,...理论上,则会进入校验流程不通过的场景,抛出BizException。

    1.4K30

    springboot全局异常实现以及@Valid和@Validated优雅实现入参验证

    前序 为什么要有全局异常❓ 统一异常处理:在开发过程中,可能会遇到多个地方抛出的不同类型的异常,如果没有统一的异常处理机制,就需要在每个可能发生异常的地方进行单独处理。...检查异常是需要在代码中显式捕获或声明抛出的异常,而非检查异常则不需要。对于检查异常,我们通常应该在合适的地方捕获并处理异常,以避免编译错误。...对于非检查异常,通常是由程序出现了无法恢复的错误或意外情况,建议将其抛出,让调用者或上层方法处理。...如果在某一层级无法处理异常,可以将异常抛出给上层进行处理,直到能够处理异常或者达到最顶层的全局异常处理器。 业务逻辑 vs. 系统错误: 在编写代码时,我们需要区分业务逻辑错误和系统错误。...对于业务逻辑错误,我们应该捕获并处理异常,提供有意义的错误信息给用户或日志记录;对于系统错误,通常应该将异常抛出并由上层进行处理。

    55210

    【详解】SpringBootValidator校验相关的注解信息

    处理校验错误当校验失败时,Spring Boot会抛出​​MethodArgumentNotValidException​​异常。你可以通过全局异常处理器来处理这些异常,并返回友好的错误信息。...ResponseEntity.badRequest().body(errors); }}Spring Boot提供的校验机制非常强大且易于使用。...通过合理的使用内置注解和自定义注解,可以有效提升应用的数据校验能力,减少潜在的错误。希望本文能帮助你在实际项目中更好地应用这些校验注解。..."username": "john", "email": "john@example.com", "password": "password123"}如果输入不符合校验规则,将返回相应的错误信息...BindingResult​​ 对象用于捕获校验错误,并返回给客户端。通过这种方式,你可以在Spring Boot应用中轻松地实现输入参数的校验,提高应用的健壮性和用户体验。

    70210

    ASP.NET MVC集成EntLib实现“自动化”异常处理

    通过《实例篇》的实演示可以看出我们通过扩展实现的自动异常处理机制能够利用EntLib的EHAB根据执行的一场处理策略对某个Action方法执行过程中抛出的异常进行处理。...不过我们并没有定义任何的ExceptionFilter特性,而是将异常处理实现在一个自定义的ExtendedController基类中,对异常的自动处理实现在重写的OnException方法中,不过在介绍该方法的逻辑之前我们先来看看定义在...进行异常处理,并获取错误消息和最后抛出的异常 15: filterContext.ExceptionHandled = true; 16: Exception...ErrorMessageHandler表示错误消息的ErrorMessage属性在构造函数中被初始化,而在实现的HandleException方法中直接通过调用当前HttpContext的扩展方法SetErrorMessage...进行错误消息的设置。

    54110

    SpringBoot统一异常拦截处理

    这玩意,他可能会很懵逼,再说直接将错误的信息直接暴露给用户,这样的体验可想而知,且对黑客而言,详细异常信息往往会提供非常大的帮助… 下面我只讲解 1.校验Body中的参数校验友好提示给用户。...2.手动抛出异常信息友好提示给用户。 一、 1.由于笔者用的是SpringCloud,首先要有一个Eureka服务,下面分别是eureka服务的启动类和配置,很简单,这里不做详细解释。...下面我要利用我定义好的这几个类演示一下我请求有异常是返回给用户的效果 首先是get请求,测试手动抛出异常,当我请求参数是 1 触发了我手动抛出的异常。 ?...1.参数校验非法是一般使用手动抛出异常的方式告知前端,上面有代码贴出,如:throw new ParameterServiceException("这里填写错误代码,规范应是一个枚举", "描述当前错误原因...当代码在运行时抛出了异常时,首先拿着抛出位置到异常表中查找是否可以被catch(例如看位置是不是处于任何一栏中的开始和结束位置之间),如果可以则跑到异常处理的起始位置开始处理,如果没有找到则原地return

    2K61

    编写高质量代码改善C#程序的157个建议

    本文主要来学习以下几点建议   建议58、用抛出异常代替返回错误代码   建议59、不要在不恰当的场合下引发异常   建议60、重新引发异常时使用inner Exception 58、用抛出异常代替返回错误代码...但是如果执行失败了却没有那么简单,因为我们需要将导致执行失败的原因通知调用者。抛出异常和返回错误代码都是用来通知调用者的手段。   ...以上通过实际的案例阐述了抛出异常相比于返回错误代码的优越性,以及在某些情况下错误代码将无用武之地,如构造函数、操作符重载及属性。...InvalidCastException则没有任何意义,甚至会造成误解,所以更好的方式是抛出一个ArgumentException。...需要重点介绍的正确引发异常的典型例子就是捕获底层API错误代码,并抛出。

    1.6K31

    ASP.NET 中验证的自定义返回和统一社会信用代码的内置验证实现

    代码量的减少,意味着更少的出错,也更易于测试和维护。指定了验证特性的模型会进行强制执行这些验证,有助于提升应用的可靠性,同时保证你在忘记编写某些验证逻辑时,防止你通过应用提交错误的数据到数据库。...下面我们来实际使用一下: 项目演示 创建项目 首先我们创建一个 ASP.NET Core Web API 项目,记得不要使用最小 API,因为最小 API 没有对验证的内置支持,参见《最小 API 与具有控制器的...不过,错误的状态码,可以通一进入错误的处理逻辑进行处理,也是比较好的方案,主要还是看个人喜好,有的前端框架,比如使用前端低代码的时候,会要求你后端出错要怎么返回。 如何统一错误返回呢?...统一社会信用代码数据错误类型及其标准提法(错码)》[4] 处理即可,校验码的验证也可以在官网搜索到 GB 32100-2015 的规范性文件。...}; } // 如果没有异常,就抛出一个空集合 return Enumerable.Empty<ModelValidationResult

    1.4K30

    Java异常处理

    在程序中,错误可能产生于各种我们没有预料到的各种情况,在 Java 中这种在程序运行时可能出现的一些错误称为异常(Exception),了解 Java 中常见的异常有助于帮我们快速定位问题,提高开发效率...() 指出异常的类型、性质、栈层次及出现在程序中的位置 常见异常 在 Java 中已经提供了很多异常来描述比较常见的错误,其中有的需要程序员进行捕获处理或声明来抛出,有的由 Java 虚拟机自动捕获处理...errorMessage 既是要输出的错误信息,如果我们想抛出自定义异常对象,则要使用 throw 关键字,此时程序在执行到 throws 时立即终止,其后面的语句将不会执行: public class...throws new myException("..."); //抛出的错误信息 if(...)...."); //抛出的其他错误信息 return ...; } } throw 关键字通常用于在 声明方法时指定该方法可能抛出的异常类型,多个异常可用逗号分隔,比如: public

    1.3K40
    领券