如何设计,容易挨揍的URI???

简介: 好的URI,建议这么弄:RESTful是基本原则,命名要有意义;不要用容易拼错的外语等。

后端工程师,如何无脑设计一些shi一样的URI,来恶心移动/前端工程师呢?

希望本文能给大家一些启示。


方法一:搞一些不知所谓的名称。
例如:
http://api.example.com/68dd0-a9d3-11e0-9f1c style="font-size: 15px;letter-spacing: 1px;">

千万不能搞这种可读性强的:
http://58.com/bj/ershou/310976 style="color: rgb(0, 82, 255);">
画外音:北京/二手频道/帖子ID


方法二:多搞一些外语,最好是容易拼错的那种。
例如:
http://api.exapmle.com/louvre/da-vinci/mona-lisa style="font-size: 15px;letter-spacing: 1px;"> 画外音:卢浮宫/达芬奇/蒙娜丽莎
方法三:多在URI的末尾添加“/”,让别人以为是目录,还有可能帮他们多搞一次301跳转,把性能搞差。
例如:
http://api.canvas.com/shapes/  style="font-size: 15px;letter-spacing: 1px;">
而这样没有歧义的api,是万万不行的:
http://api.canvas.com/shapes style="font-size: 15px;letter-spacing: 1px;">


方法四:多使用“_”而不是“-”提高URI的误读性,尽量让文本查看器中的下划线特效遮蔽“_”

例如:
http://api.example.com/blogs/my_first_post style="font-size: 15px;letter-spacing: 1px;text-decoration: underline;"> 怎么样,配合上下划线特效,是不是特别爽?

而这种比较清爽的,是不推荐的:
http://api.example.com/blogs/my-first-post style="font-size: 15px;letter-spacing: 1px;">


方法五:多使用大写字母,把调用者搞晕,为难调用方。 例如:
http://api.example.com/My-Folder/My-Doc  style="font-size: 15px;letter-spacing: 1px;"> 画外音:RFC 3986中规定URI区分大小写。


学会了吗?注意保护好自己!

玩笑归玩笑,好的URI,建议这么弄:
(1)RESTful是基本原则,
命名要有意义
(2)
不要用容易拼错的外语
(3)URI的
末尾不要添加“/”
(4)
使用“-”而不是“_” ,以提高URI的可读性;
(5)
禁止使用大写

本文转自“架构师之路”公众号,58沈剑提供。

目录
相关文章
|
存储 监控 Shell
【Shell 命令集合 备份压缩 】Linux 备份文件系统 dump命令 使用指南
【Shell 命令集合 备份压缩 】Linux 备份文件系统 dump命令 使用指南
409 0
|
API iOS开发
iOS面试关于runtime
iOS面试关于runtime
340 0
|
JSON 前端开发 Java
微服务——SpringBoot使用归纳——Spring Boot中的MVC支持——@RestController
本文主要介绍 Spring Boot 中 MVC 开发常用的几个注解及其使用方式,包括 `@RestController`、`@RequestMapping`、`@PathVariable`、`@RequestParam` 和 `@RequestBody`。其中重点讲解了 `@RestController` 注解的构成与特点:它是 `@Controller` 和 `@ResponseBody` 的结合体,适用于返回 JSON 数据的场景。文章还指出,在需要模板渲染(如 Thymeleaf)而非前后端分离的情况下,应使用 `@Controller` 而非 `@RestController`
516 0
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】28.卷积神经网络之NiN模型介绍及其Pytorch实现【含完整代码】
【从零开始学习深度学习】28.卷积神经网络之NiN模型介绍及其Pytorch实现【含完整代码】
|
机器学习/深度学习 存储 人工智能
《智领未来:C++ 与遗传算法在 AI 模型参数优化中的深度融合》
本文探讨了在C++中实现遗传算法并应用于人工智能模型参数优化的方法。遗传算法模拟自然界的进化过程,通过选择、交叉和变异等操作优化模型参数。文章详细介绍了C++实现遗传算法的关键步骤,包括定义个体与种群、初始化种群、适应度评估、选择、交叉、变异及迭代更新种群。此外,还讨论了C++实现遗传算法的优势与挑战,并展望了其在深度学习、强化学习、边缘计算等领域的应用前景。
315 9
|
人工智能 搜索推荐 大数据
【云故事探索】NO.11:福建紫讯——数字化转型的前行者
福建紫讯科技成立于2015年,致力于为跨境电商提供高效软件解决方案。通过整合大数据、云计算和AI,构建了完整的跨境电商生态系统。面对网络访问难题,紫讯优化了紫鸟浏览器,提升了用户体验,并借助阿里云的PAI框架,大幅降低了研发成本。未来,紫讯将继续深耕AI技术,提升卖家竞争力,并与阿里云深化合作,推动行业发展。
|
监控 算法 Java
|
SQL Java 网络安全
SQL Server 2016 安装
SQL Server 2016 安装
239 0
|
并行计算 TensorFlow 算法框架/工具
Windows10下CUDA9.0+CUDNN7.0.5的完美安装教程
该文介绍了如何在Windows 10上安装CUDA 9.0和cuDNN 7.0.5以支持Tensorflow-gpu 1.10.0。首先,解释了安装CUDA的原因,然后详细步骤包括:从NVIDIA官网下载CUDA 9.0,选择自定义安装并关闭不必要的组件,检查显卡驱动版本以决定是否安装Display Driver,最后确认安装成功。接着,下载cuDNN需要注册NVIDIA账户,解压后将文件复制到CUDA安装目录。整个过程旨在确保与Tensorflow-gpu 1.10.0的兼容性。
1252 2
|
缓存 监控 安全
中间件在Python Web框架中的角色与应用场景
【7月更文挑战第21天】中间件在Python Web开发中作为服务器与应用间的软件层,拦截、处理请求和响应,无需改动应用代码。它扩展框架功能,复用跨应用逻辑,加强安全,优化性能。如Django中间件处理请求/响应,Flask通过WSGI中间件实现类似功能,两者均在不触及核心代码前提下,灵活增强应用行为,是现代Web开发关键组件。
406 0