在这个框架充斥的年代,这个话题似乎没啥意义。我只是希望大家在使用框架的同时,不要忘记了解技术的原理,以至于遇到问题手足无措。其实我本人比较反框架的,因为大多数人容易陷入框架的细节,而忘记事情的本质。本文要实现的框架,虽说简单,但应用在日常项目还是绰绰有余的,而且可能会简单一些。文章有点长,后面有干货,稍微有点耐性哦~

首先我们探讨一下后台api的基本原理。当我们前端发起一个http请求,到达服务器,服务器对请求进行处理,返回处理结果。这个过程中,可能会经过一些代理,比如nginx,然后到达我们的http处理程序,诸如tomcat之类。Http处理程序会通过解析http请求数据,诸如url,参数之类,然后做出响应。关键来了,这里最重要就是对url的处理,然后识别不同的请求,当然你要喜欢也可以通过其他字段进行区分。那么所谓url的处理,其实就是字符串的处理。后台通过对字符串进行解析,然后分发到各个处理模块,诸如controller之类。嗯,所以现在我们要实现的第一步就是这个url的解析。

一般的url都是/xx/xx/xx的格式,现有框架对url的解析,大多都是按目录的,有点类似文件目录系统。这里为了简单,我们不区分目录,直接处理最后一个/后面的内容。实际上一级目录也可以满足所有场景,只要注意不重名就行了。这里还要先做一件事,就是如何拦截这个请求,不同的框架有不同的处理,这里以tomcat为例,我们可以在web.xml注册一个filter。

api和gataway相关推荐

  1. API 网关 (API Gataway)

    API 网关 (API Gataway) API 网关出现的原因是微服务架构的出现,不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求,如果让客户端直接与各 ...

  2. 10分钟上手,API网关(API Gataway)教程

    文章简述 本次给大家带来一个简单易用的API网关 (详情看这里

  3. openresty开发系列1--网关API架构及选型

    微服务架构在项目中的应用越来越多,我们知道在微服务架构风格中,一个大应用被拆分成为了多个小的服务系统提供出来,这些小的系统他们可以自成体系,也就是说这些小系统可以拥有自己的数据库,框架甚至语言等,这些 ...

  4. .NET Core微服务之路:基于Ocelot的API网关实现--http/https协议篇

    前言 最近一直在忙公司和私下的兼职,白天十个小时,晚上四个小时,感觉每天都是打了鸡血似的,精神满满的,连自己那已经学打酱油的娃都很少关心,也有很长一段时间没有更新博客了,特别抱歉,小伙伴们都等得想取关 ...

  5. 谈谈微服务中的 API 网关(API Gateway)

    前言 又是很久没写博客了,最近一段时间换了新工作,比较忙,所以没有抽出来太多的时间写给关注我的粉丝写一些干货了,就有人问我怎么最近没有更新博客了,在这里给大家抱歉. 那么,在本篇文章中,我们就一起来探 ...

  6. api商品分享源码_谈谈微服务中的 API 网关(API Gateway)

    在本篇文章中,我们就一起来探讨一下 API 网关在整个微服务分布式架构中的一个作用. # 背景我们知道在微服务架构风格中,一个大应用被拆分成为了多个小的服务系统提供出来,这些小的系统他们可以自成体系, ...

  7. java api gateway_微服务中的 API 网关(API Gateway)

    背景 我们知道在微服务架构风格中,一个大应用被拆分成为了多个小的服务系统提供出来,这些小的系统他们可以自成体系,也就是说这些小系统可以拥有自己的数据库,框架甚至语言等,这些小系统通常以提供 Rest ...

  8. 搭建gataway鉴权流程

    先完善Login接口 controller @RestController @RequestMapping("/login") @Api(value = "管理API&q ...

  9. python 微服务 网关_微服务中的 API 网关(API Gateway)

    我们知道在微服务架构风格中,一个大应用被拆分成为了多个小的服务系统提供出来,这些小的系统他们可以自成体系,也就是说这些小系统可以拥有自己的数据库,框架甚至语言等,这些小系统通常以提供 Rest Api ...

最新文章

  1. TensorFlow之会话
  2. 主机配置_分享几套电脑主机配置
  3. 基于IOC的GUI框架设计与实现
  4. 如何用Java做玫瑰花数_c语言如何输出玫瑰花数?(代码示例)
  5. 光伏电站清扫机器人_光伏智能清扫机器人
  6. c语言函数求pi的近似值,C语言 用π/4=1-1/3+1/5-1/7+... 求π的近似值
  7. android游戏黑屏,第五人格游戏进不去黑屏解决办法
  8. 基于nchan打造百万用户的聊天室
  9. 泰克示波器查眼图_泰克示波器自带上位机软件功能介绍,了解一下
  10. $(document).ready(function(){}),$().ready(function(){})和$(function(){})三个有区别么
  11. 昆明冶金职业技术学院计算机,昆明冶金高等专科学校官网
  12. hdu 1880 魔咒字典
  13. 网络初级 关于ensp动态路由rip协议
  14. 微信公众号数据2019_数据丨2019年微信公众号文章数据报告!
  15. [Intensive Reading]图像生成:SaGAN
  16. springcloud入门——zookeeper
  17. 3D打印机Marlin 固件 改12864引脚 不显示白屏的问题
  18. chip在计算机英语什么意思,chip是什么意思中文翻译
  19. 【智能商务】学习财务分析,看这10张思维导图就够啦
  20. 西门子1200plc轴运动控制程序模板

热门文章

  1. 新浪新版微博邀请码 (持续更新最新) - 长微博工具
  2. 《信号与系统》实验-使用 MATLAB 进行生成数字音乐、生成乐器音乐、音乐处理与添加音乐特效(题目)
  3. 计算机一直显示配置更新失败怎么办,win10电脑windows更新失败怎么办?更新失败却一直在更新...
  4. CSS中 定位position 和 transform 移动元素的比较
  5. 机器学习应该了解的十大算法
  6. Netty高级进阶之Netty解码器
  7. Scrapy+MySQL爬取去哪儿网
  8. jwplayer 自定义logo已经右键菜单事件
  9. DOM初探(18)——让滚动条滚动
  10. 读源码品Caffe - 结构流程篇