回到目录

关于Lind.DDD.Api的使用与客户端的调用

作者:张占岭

花名:仓储大叔

框架:Lind.DDD,Lind.DDD.Api

目录

Api里注册全局校验特性 1

Api中设置全局的Cors跨域资源访问 2

Api直接返回Json,而不是Xml 2

Api中Controller的Get,Post,Put和Delete 3

Api中Controller几大方法重载要注意的 3

客户端如何调用Api 4

对ResponseMessage的结果按需返回 5

对ResponseMessage添加TotalRecords支持分页集合 6

客户端如何为服务端传输加密密钥 7

Api里注册全局校验特性

Api中设置全局的Cors跨域资源访问

Api直接返回Json,而不是Xml

添加全局过滤器之后,再访问API之后就被响应成JSON串了

Api中Controller的Get,Post,Put和Delete

Get:一般用于读取资源

Post:用来添加资源

Put:用来更新资源

Delete:用于删除资源

Api中Controller几大方法重载要注意的

一、方法类型相同,名称不同,个数相同,这种重载不被允许

二、方法类型不同,个数相同,这种重载可以

三、方法类型不同,个数相同,但名称相同,这种重载不可以

客户端如何调用Api

读取资源

添加资源

更新资源:

对ResponseMessage的结果按需返回

对于一个对象,一个集合,它在返回到客户端时可能有些信息是无用的,如果把他们返回那就是多余的,造成了不必要的数据传输的损失,所以我们应该按需序列化字段,而不是把方法所有字段都返回到客户端,而返回的字段列表,由客户端的请求参数决定。

对于ReturnMessage的返回,需要指定要过滤的字段,这些返回到客户端就只有指定的字段了,需要注意的是,我们的每个字段之间需要用逗号分割,这是一个约定。

对ResponseMessage添加TotalRecords支持分页集合

如果分页返回的数据,我们在前台需要知道集合的所有数量,然后和当前页码及每页显示的数据量来构建我们的模块。

在Body的set块中为TotalRecords属性赋值

然后ReturnMessaged在序列化后,将TotalRecords响应到客户端。

客户端如何为服务端传输加密密钥

Lind.DDD框架里为我们提供了简单的方式进行密钥串的长成,你只需要将参数到到NameValueCollection键值对里,然后调用密钥生产方法,最后使用它自己的扩展方法ToUrl()来进行最终地址的升成。

验证成功,返回如下结果

当验证不合法时,则返回如下结果

而服务端可以通过全局的过滤器对URL地址进行解析,并校验它的合法性!

好了,本讲主要是一些基础知识的介绍,我们在使用webApi开发项目过程中,还会不断的总结。

回到目录

关于Lind.DDD.Api客户端的使用与知识分享的更多相关文章

  1. Lind.DDD.API核心技术分享

    回到目录 关于Lind.DDD框架里API框架的技术点说明 讲解:张占岭 花名:仓储大叔 主要框架:Lind.DDD 目录 关于Lind.DDD.Authorization 关于授权的原理 关于Api ...

  2. Lind.DDD敏捷领域驱动框架~介绍

    回到占占推荐博客索引 最近觉得自己的框架过于复杂,在实现开发使用中有些不爽,自己的朋友们也经常和我说,框架太麻烦了,要引用的类库太多:之前架构之所以这样设计,完全出于对职责分离和代码附复用的考虑,主要 ...

  3. Lind.DDD.Aspects通过Plugins实现方法的动态拦截~Lind里的AOP

    回到目录 .Net MVC之所以发展的如些之好,一个很重要原因就是它公开了一组AOP的过滤器,即使用这些过滤器可以方便的拦截controller里的action,并注入我们自己的代码逻辑,向全局的异常 ...

  4. Lind.DDD.SSO单点登陆组件的使用(原创)

    回到目录 一般sso的说明 在Lind.DDD框架里,有对单点登陆的集成,原理就是各个网站去sso网站统一登陆授权,之后在sso网站将登陆的token进行存储,存储方式随你(cache,redis,m ...

  5. Lind.DDD.RedisClient~对StackExchange.Redis调用者的封装及多路复用技术

    回到目录 两雄争霸 使用StackExchange.Redis的原因是因为它开源,免费,而对于商业化的ServiceStack.Redis,它将一步步被前者取代,开源将是一种趋势,商业化也值得被我们尊 ...

  6. Lind.DDD~实体属性变更追踪器的实现

    回到目录 看着这个标题很复杂,大叔把它拆开说一下,实体属性-变更-追踪器,把它拆成三部分大家看起来就容易懂一些了,实体属性:领域实体里有自己的属性,属性有getter,setter块,用来返回和设置属 ...

  7. Lind.DDD.Repositories.Mongo层介绍

    回到目录 之前已经发生了 大叔之前讲过被仓储化了的Mongodb,而在大叔开发了Lind.DDD之后,决定把这个东西再搬到本框架的仓储层来,这也是大势所趋的,毕竟mongodb是最像关系数据库的NoS ...

  8. Lind.DDD.Events领域事件介绍

    回到目录 闲话多说 领域事件大叔感觉是最不好讲的一篇文章,所以拖欠了很久,但最终还是在2015年年前(阴历)把这个知识点讲一下,事件这个东西早在C#1.0时代就有了,那时学起来也是一个费劲,什么是委托 ...

  9. Lind.DDD.LindAspects方法拦截的介绍

    回到目录 什么是LindAspects 之前写了关于Aspects的文章<Lind.DDD.Aspects通过Plugins实现方法的动态拦截~Lind里的AOP>,今天主要在设计思想上进 ...

随机推荐

  1. windows命令——taskkill

    C:\Users\Administrator>taskkill /? TASKKILL [/S system [/U username [/P [password]]]] { [/FI filt ...

  2. 使用批处理设置JDK环境变量(Win7可用,新版本)

    欢迎探讨,如有错误敬请指正 如需转载,请注明出处http://www.cnblogs.com/nullzx/ 1. JDK环境的设置 一般情况下来说按照网上大多数的教程设置JDK的环境变量即可.但对于 ...

  3. 使用 fixed role 授予权限

    今天下午,Leader 发mail给我,要求授予某个User对数据库只读的权限. Step1,在SQL Server中为该用户创建一个Login和User,在创建User时,建立Login 和 Use ...

  4. 【Win10 开发】读取PDF文档

    关于用来读取PDF文档的内容的API,其实在Win8.1的时候就有,不过没关系,既咱们讨论的是10的UAP,连同8.1的内容也包括进去,所以老周无数次强调:把以前的内容学好了,就可以在不学习任何新知识 ...

  5. JavaScript 面向对象继承的实现

    <script type="text/javascript"> function Animal () { this.species="Animal" ...

  6. Android实现不重复启动APP的方法

    转载博客:http://blog.sina.cn/dpool/blog/s/blog_5de73d0b0102vpai.html?utm_source=bshare&utm_campaign= ...

  7. Neutron 功能概述 - 每天5分钟玩转 OpenStack(65)

    从今天开始,我们将学习 OpenStack 的 Networking Service,Neutron.Neutron 的难度会比前面所有模块都大一些,内容也多一些.为了帮助大家更好的掌握 Neutor ...

  8. 掌握 Cinder 的设计思想 - 每天5分钟玩转 OpenStack(46)

    上一节介绍了 Cinder 的架构,这节讨论 Cinder 个组件如何协同工作及其设计思想. 从 volume 创建流程看 cinder-* 子服务如何协同工作 对于 Cinder 学习来说,Volu ...

  9. Servlet在启动时加载的tomcat源码(原创)

    tomcat 8.0.36 知识点: 通过配置loadOnStartup可以设置Servlet是否在Tomcat启动时加载,以及按值大小进行有序加载,其最小有效值为0,最大有效值为Integer.MA ...

  10. Java内存模型深度解析:final--转

    原文地址:http://www.codeceo.com/article/java-memory-6.html 与前面介绍的锁和Volatile相比较,对final域的读和写更像是普通的变量访问.对于f ...