微服务架构设计 第八步: 设计微服务对外 REST API

2016.9.22, 北京, Ken Fang

开发与测试人员协作完成了: 微服务对外需提供的方法 (API) 后, 开发与测试人员便需继续协作, 将微服务对外需提供的方法 (API), 设计成 REST API。

将微服务对外需提供的方法 (API), 设计成 REST API 的主要步骤如下:

1. 将微服务中代表某个单一业务概念的实体, 识为 “Resource”。并分析 Resource 间的关系。

Resource 间的关系

Independent

在没有其他的 Resources 存在下, 也能独立存在的 Resources。

Dependent

一定要所依赖的父 Resources 存在, 才能存在的 Resources。

Associative

Resources 间是互相独立存在的, 但, 彼此间存在著 “包含” 的关系; 某个 Resource 所需额外的 Properties, 只需 Link 到另一个 Resource。

2. 将微服务中代表某个单一业务概念的实体, 对外需提供的方法 (API), 对映到 Http 的方法。

API Modeling Actions

Typical HTTP Verb

List, Search, Match, View All

GET a resource collection

GET /{collection name}

Show, Retrieve, View

Get a resource

GET /{collection name}/{id}

Create, Add

POST create a resource

POST /{collection name}

Replace

PUT update a resource collection

PUT /{collection name}

Update

PUT update a resource

PUT /{collection name}/{id}

Delete All, Remove All, Clear, Reset

DELETE delete a resource collection

DELETE /{collection name}

Delete, Remove

DELETE delete a resource instance

DELETE /{collection name}/{id}

3.       依照由步骤 1, 所分析出 Resource 间的关系, 与由步骤 2, 所对映出的 Http 的方法, 设计出 Resource 的 Endpoint。

4.       依照步骤 3, 所设计出 Resource 的 Endpoint, 设计出 Http 的 Response Codes。

SaveSaveSaveSaveSaveSaveSaveSave

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏河湾欢儿的专栏

文档宽高及窗口事件

onscroll:当滚动条滚动的时候触发 onresize:当窗口大小发生改变的时候触发

632
来自专栏杨龙飞前端

scrollto 到指定位置

1694
来自专栏张善友的专栏

Quartz.net通过配置文件来完成作业调度

将Quartz.NET集成到 Castle中 例子代码使用的Quartz.net版本是0.6,Quartz.NET 0.9 发布了 ,最新版本支持通过配置文件来...

18410
来自专栏前端说吧

JS-缓冲运动:菜单栏型悬浮框

3465
来自专栏一个小程序员的成长笔记

在不同浏览器都实用的各窗口大小获取方法

// 浏览器窗口 var w= document.documentElement.clientWidth || document.body.clie...

3468
来自专栏一个会写诗的程序员的博客

ClassMetadataReadingVisitor has interface org.springframework.asm.ClassVisitor as super class

ClassMetadataReadingVisitor has interface org.springframework.asm.ClassVisitor a...

855
来自专栏用户2442861的专栏

Java任务调度框架Quartz教程实例

http://blog.csdn.net/yuebinghaoyuan/article/details/9045471

432
来自专栏张善友的专栏

Quartz.net官方开发指南 第二课:Jobs And Triggers

正如前面所提到的那样,通过实现IJob接口来使你的.NET组件可以很简单地被scheduler执行。下面是IJob接口: namespace Quartz ...

1978
来自专栏静默虚空的博客

[Quartz笔记]玩转定时调度

简介 Quartz是什么? Quartz是一个特性丰富的、开源的作业调度框架。它可以集成到任何Java应用。 使用它,你可以非常轻松的实现定时任务的调度执行。 ...

1826
来自专栏前端知识分享

第44天:鼠标移动放大效果

814

扫码关注云+社区