马士兵网约车项目笔记--第一节


马士兵网约车项目笔记


设计原则


1.单一职责

每一个微服务干一件事

如订单服务和地图服务

2.高内聚

关系紧密的微服务放到一块

如订单管理服务和订单金额统计服务

3.低耦合

一个服务变更不要影响别的服务

4.粒度把控

无标准 适合最好

服务拆分的时候多考虑系统边界

5.AKF原则

分布式系统考虑系统架构的拆分

x轴 水平扩张

y轴 功能划分

z轴 分片


乘客端


注册/登录功能

拆分成两个模块:api乘客模块和验证码模块。项目中所有的涉及的验证码都能放到这个模块中。

验证码有倒计时的问题可以用Redis的ttl来做,api乘客模块连上Redis,把验证码存到Redis里边,设置验证码的过期时间为120s。当Redis的这个key过期之后,乘客再去填这个验证码的时候,就没有这个key了,就说明验证码过期了。

电信运行商接口发送短信



什么是API?


接口文档所说的接口,就是API(接口设计)

A:Application 程序

P:Programmer 编程

I:Interface 接口

SJ:①XX调用Java的某个Interface接口,并调用其实现类来完成业务逻辑(接口只有方法,没有方法体)

② HTTP发送请求,得到一个相应,这也是API

总结:只要你提供了一种沟通方式、一些方法、一个函数、一个功能 给别人用,别人能通过对你的方法的调用,来实现他想要的结果,这就是API。

平时工作中所说的:“调用一下腾讯的API、调用一下高德地图的API、调用一下XX功能的API”


restful规范/风格


Resource Representational state transfer (表现层状态转移)

REST就是资源的状态转移

资源就是消息的实体

而且URI(URL)是指向资源

把资源具体呈现出来的就是表现层

把资源的状态进行改变就是状态转移

(例如修改用户状态从1-0,也就是资源发生了变化;操作状态转移的动作(方法)也就是post,put,get, delete,patch等);

要素:

1、协议: http(s)

2、域名:www.aaa.com 站点

api.xxx.com提供api的

3、路径: /user /company

4、版本: v1 v2

5、动作:post 新增,delete删除, put 修改,patch修改(修改哪个传哪个,打补丁),get查询


RESTful命名要点


1、带用户Id(带敏感信息的)的URL路径,都不要(防止篡改)

2、URL路径中资源的名字一般都使用复数形式,资源名字都是名词(users,courses

3、查单个数据的URL要带参数,

查所有的就不需要参数了,

后台用get方法List集合接收所有即可

RESTful增删改查一个用户的信息

把动作名写在api前面,新增post不用传id,其他需要传id

状态码

消息

翻页设计

方式一:/api/courses?page=1

方式二:/api/courses?max_id=1000


apifox介绍


结合前端 后端 测试 文档

设计阶段 - 接口文档

开发阶段

联调测试阶段

api first


0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
飞小杰
作者分享
分享一本好书,技术为径,感兴趣的同学可以看看,下载链接 https://zlib.by/book/29379676/13f78c/%E6%8A%80%E6%9C%AF%E4%B8%BA%E5%BE%84%E5%B8%A6%E9%A2%86%E5%85%AC%E5%8F%B8%E8%B5%B0%E5%90%91%E5%8D%93%E8%B6%8A%E7%9A%84%E5%B7%A5%E7%A8%8B%E5%B8%88.html?ts=0614
3
快过年了,别再讨论什么 Spring、MyBatis 源码、微服务了!你带着你的破电脑回到家,并不能给你带来任何实质性作用。朋友们兜里掏大把钱吃喝玩乐,你却在默默地摆弄你的破烂“框架”。亲戚朋友吃饭时问你收获了什么,你说:“我做了个框架,把 JPA、MyBatis、Hibernate 的优点都结合了一遍。”亲戚们一脸懵逼,你还在心里默默嘲笑他们,笑他们不懂你的轮子、不懂你的算法、不懂你的封装,也笑他们连个复杂点的密码都记不住。你父母的同事都在炫耀自己子女的年终收获:“儿子买了个房,女儿买了个车,姑娘升职加薪了……”你的父母默默无言,只能低声说:“我儿子搞了个破电脑,开起来嗡嗡响,家里电表走得越来越快了。”他们还在想你什么时候能买套房子,什么时候能成个家。而你却一天到晚想着怎么设计一个牛逼的框架,整天盯着破文档,封装什么通用工具类:ExcelUtil、ImageUtil、StringUtil、BeanUtil……GitHub 上早就一堆现成的轮子,但你依然乐此不疲地写着自己的另一套,因为你总觉得这是你自己写的,不一样。但实际上,可能毛用都没有。时间轮回,一年又一年,你还在想着新技术出来了,继续学习什么 Spring Native、Vert.x、DDD 称王……而你身边的人已经在考虑:什么时候买第二套房子,什么时候生二胎。而你,还在捣鼓你的破代码。
11
北京滴滴出行 社招岗位招聘 岗位:测试开发工程师,研发工程师 要求 :一本及以上学历,2年及以上相关工作经验 语言:Python C++ go java均可 有想来的滴滴我 vx:YoloToSuccess
8
开冲
3
有没有mac上记录todo项,平时记录一些工作项的软件 资源 软件
2
下载 APP