提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
2023/6/8 10:08
在学习DDD的过程中遇到了RESTful API的问题,之前面试过程中也有问到过REST 的问题,具体了解一下并记录。
一、RESTful API是什么?
是客户端和服务端进行接口通信的规范问题,随着互联网和移动设备的发展,人们对Web应用的使用需求也增加,传统的动态页面由于低效率而渐渐被HTML+JavaScript(Ajax)的前后端分离所取代,并且安卓、IOS、小程序等形式客户端层出不穷,客户端的种类出现多元化,而客户端和服务端就需要接口进行通信,但接口的规范性就又成了一个问题:一套结构清晰、符合标准、易于理解、扩展方便让大部分人都能够理解接受的接口风格就显得越来越重要,而RESTful风格的接口(RESTful API)刚好有以上特点,就逐渐被实践应用而变得流行起来。现在,RESTful是目前最流行的接口设计规范,在很多公司有着广泛的应用,其中Github 的API设计就是很标准的RESTful API,你可以参考学习。
二、在DDD中使用RESTful API
RESTful API 已经变成了主流 API 设计方式,当设计好领域对象后,设计 API 的难度大大降低。
使用聚合根作为 URI 的根路径,使用实体作为子路径。通过 ID 作为 Path 参数。
值对象没有 ID,应该只能依附于某个实体的路径下做更新操作。
另外根据这个关系,处理批量操作的时候应该在实体的上一级完成,例如批量添加订单的订单项,可以设计为:
POST /orders/{orderId}/items-batch
不要设计为:
POST /orders/{orderId}/items/batch