首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

公司规定所有接口都用 POST 请求,这是为什么

最近在逛知乎的时候发现一个有趣的问题:《公司规定所有接口都用 post 请求,这是为什么?》...,则会缓存,如果是数据,则不会缓存 查看上面的区别,就会发现 post 在发送数据量大的请求时优势很显示,get 则更适合获取静态资源、简单的查询等接口。...我个人在开发接口的时候也会注意,将简单的查询请求使用 get 方法,其他增、删、改、复杂的查询请求都可以使用 post,但不会像题主的公司一样全部使用 post。...所有的业务请求参数都以PB编码后放在请求体里,并和后端的gRPC体系衔接。接口除了防重试之外,不提供常规意义上的Cache。而对于静态接口,走CDN,做多级Cache。该用Get用Get。...“ 如果是你来设计公司的 API 规范,会规定所有接口都用 post 请求吗,这是为什么? 推荐阅读:看看人家 SpringBoot + vue后台管理系统,多么优雅...

65420

公司规定所有接口都用 POST请求,这是为什么

最近在逛知乎的时候发现一个有趣的问题:《公司规定所有接口都用 post 请求,这是为什么?》...,则会缓存,如果是数据,则不会缓存 查看上面的区别,就会发现 post 在发送数据量大的请求时优势很显示,get 则更适合获取静态资源、简单的查询等接口。...我个人在开发接口的时候也会注意,将简单的查询请求使用 get 方法,其他增、删、改、复杂的查询请求都可以使用 post,但不会像题主的公司一样全部使用 post。...所有的业务请求参数都以PB编码后放在请求体里,并和后端的gRPC体系衔接。接口除了防重试之外,不提供常规意义上的Cache。而对于静态接口,走CDN,做多级Cache。该用Get用Get。...“ 如果是你来设计公司的 API 规范,会规定所有接口都用 post 请求吗,这是为什么

1.1K30
您找到你想要的搜索结果了吗?
是的
没有找到

公司规定所有接口都用 post 请求,这是为什么

最近在逛知乎的时候发现一个有趣的问题:《公司规定所有接口都用 post 请求,这是为什么?》...在19的时候接到一个项目是从零开始搭建一个微服务,当时就有了解过接口的一些规范,比如耳熟能详的Restful规范,就被应用到这个微服务项目中。...,则会缓存,如果是数据,则不会缓存 查看上面的区别,就会发现post在发送数据量大的请求时优势很显示,get则更适合获取静态资源、简单的查询等接口。...我个人在开发接口的时候也会注意,将简单的查询请求使用get方法,其他增、删、改、复杂的查询请求都可以使用post,但不会像题主的公司一样全部使用post。...对此,如果是你来设计公司的API规范,会规定所有接口都用 post 请求吗,这是为什么

2.1K30

公司规定所有接口都用 POST请求,这是为什么

最近在逛知乎的时候发现一个有趣的问题:《公司规定所有接口都用 post 请求,这是为什么?》...在19的时候接到一个项目是从零开始搭建一个微服务,当时就有了解过接口的一些规范,比如耳熟能详的Restful规范,就被应用到这个微服务项目中。...,则会缓存,如果是数据,则不会缓存 查看上面的区别,就会发现post在发送数据量大的请求时优势很显示,get则更适合获取静态资源、简单的查询等接口。...(点击下载2021年最新阿里p7面试题教程) 我个人在开发接口的时候也会注意,将简单的查询请求使用get方法,其他增、删、改、复杂的查询请求都可以使用post,但不会像题主的公司一样全部使用post。...对此,如果是你来设计公司的API规范,会规定所有接口都用 post 请求吗,这是为什么

54110

SpringBoot项目启动请求远程接口的实现方式

场景   有一个SpringBoot项目需要在启动请求另一个远程服务拿取配置,而不是加载过程中去请求,可能会出现类没有实例化的场景,因此需要实现项目完全启动再进行请求的场景。...解决 一般会有两种实现方式: 实现ApplicationRunner接口 @Component public class ConsumerRunner implements ApplicationRunner...(ApplicationArgumers args) throws Exception{ //逻辑 System.out.println("SpringBoot项目启动执行..."); } }   若有多个代码段需要执行,可用@Order注解设置执行的顺序,值越小越先执行添加如@Order(value=1) 实现CommandLineRunner接口 @Component...String strArgs = Arrays.stream(args).collect(Collectors.joining("|"));   不同之处在于CommandLineRunner接口

76110

Python基础18-异常处理

异常处理介绍 异常处理的单分支 异常处理的多分支 接收抛出异常的值 其他格式 万能异常类型Exception:可以匹配任意类型的异常 try... else......异常是错误发生的信号,一旦程序出错,就会产生一个异常,如果异常没有被应用程序处理,那么该异常就会抛出来,程序的执行也随之终止。...异常包含三个部分: 1.traceback异常信息追踪 2.异常类型 3.异常的信息 错误分为两大类: 1.语法上的错误 2.逻辑上的错误 ---- 为什么要异常处理?...print('KeyError') except IndexError print('IndexError') print('other code') 接收抛出异常的值 try:...必须放到后面,else的子代码块会在被检测的代码没有异常的情况下执行') print('other code') try... finally... try: f=open('a.txt','w

44620

#21 Python异常

ImportError(导入模块错误)、IndexError(索引错误)、NameError(变量错误)、SyntaxError(语法错误)、IndentationError(缩进错误)等,你或许有许多疑问,为什么程序出现这个错误就会打印出相应的错误信息...class 'NameError'> 14 15 # 可以看到当出现NameError时,并没有终止程序,而是执行出现异常时的代码块 从上面的代码可以看到,当开始执行一个try语句时,Python将会在当前程序的上下文做标记...print(name) 4 5 try: 6 print(age) 7 except NameError: 8 print('我是NameError') 9 except KeyError...: 10 print('我是KeyError') 11 12 13 # 运行结果: 14 MinuteSheep 15 我是NameError 长上面代码可以看出,当有多个except语句时...,else和finally语句并不常见 1.4 异常种类 常见的异常种类: SystemExit 解释器请求退出 KeyboardInterrupt

1K20

Python 工匠: 异常处理的三个好习惯

KeyError、 ValueError、 TypeError 等更是日常编程里随处可见的老朋友。 ” 前言 异常处理工作由“捕获”和“抛出”两部分组成。...继续阅读前,我希望你已经了解了下面这些知识点: 1.异常的基本语法与用法 2.为什么要使用异常代替错误返回 3.为什么在写 Python 时鼓励使用异常 只做精准的异常捕获 假如你不够了解异常机制,就难免会对它有一种天然恐惧感...为什么呢? 问题就藏在这个硕大无比的 try...except 语句块里。假如你把眼睛贴近屏幕,非常仔细的检查这段代码。...打个比方,如果你想让一个请求返回 404 状态码,那么只要在该请求处理过程中执行 raiseHttp404 即可。 所以,我们很自然的从 Django 获得了灵感。...如果你用过 requests 模块,你可能已经发现它请求页面出错时所抛出的异常,并不是它在底层所使用的 urllib3 模块的原始异常,而是通过 requests.exceptions 包装过一次的异常

73140

Python 工匠:异常处理的三个好习惯

KeyError、ValueError、TypeError等更是日常编程里随处可见的老朋友。 异常处理工作由“捕获”和“抛出”两部分组成。...为什么呢? 问题就藏在这个硕大无比的 try ... except 语句块里。假如你把眼睛贴近屏幕,非常仔细的检查这段代码。...打个比方,如果你想让一个请求返回 404 状态码,那么只要在该请求处理过程中执行 raise Http404 即可。 所以,我们很自然的从 Django 获得了灵感。...如果你用过 requests 模块,你可能已经发现它请求页面出错时所抛出的异常,并不是它在底层所使用的 urllib3 模块的原始异常,而是通过 requests.exceptions 包装过一次的异常...使用该上下文管理器,整个函数可以变得更清晰简洁: def upload_avatar(request): """用户上传新头像""" with raise_api_error(KeyError

58940

三个好习惯,帮你写好Python里的异常处理

KeyError、 ValueError、 TypeError 等更是日常编程里随处可见的老朋友。 异常处理工作由“捕获”和“抛出”两部分组成。...为什么呢? 问题就藏在这个硕大无比的 try...except 语句块里。假如你把眼睛贴近屏幕,非常仔细的检查这段代码。...打个比方,如果你想让一个请求返回 404 状态码,那么只要在该请求处理过程中执行 raiseHttp404 即可。 所以,我们很自然的从 Django 获得了灵感。...如果你用过 requests 模块,你可能已经发现它请求页面出错时所抛出的异常,并不是它在底层所使用的 urllib3 模块的原始异常,而是通过 requests.exceptions 包装过一次的异常...使用该上下文管理器,整个函数可以变得更清晰简洁: def upload_avatar(request): """用户上传新头像""" with raise_api_error(KeyError

1.1K20

Python 工匠: 异常处理的三个好习惯

KeyError、 ValueError、 TypeError 等更是日常编程里随处可见的老朋友。 异常处理工作由“捕获”和“抛出”两部分组成。...为什么呢? 问题就藏在这个硕大无比的 try...except 语句块里。假如你把眼睛贴近屏幕,非常仔细的检查这段代码。...打个比方,如果你想让一个请求返回 404 状态码,那么只要在该请求处理过程中执行 raiseHttp404 即可。 所以,我们很自然的从 Django 获得了灵感。...如果你用过 requests 模块,你可能已经发现它请求页面出错时所抛出的异常,并不是它在底层所使用的 urllib3 模块的原始异常,而是通过 requests.exceptions 包装过一次的异常...使用该上下文管理器,整个函数可以变得更清晰简洁: def upload_avatar(request): """用户上传新头像""" with raise_api_error(KeyError

88230

python错误和异常

ZeroDivisionError、             TypeError             SyntaxError             IndexError    索引超出序列范围             KeyError...    请求一个不存在的字典关键字             IOError        输入输出错误             AttributeError    尝试访问未知的对象属性 三:异常处理...   ")     try语句按照如下方式工作;     ①首先,执行try子句(在关键字try和关键字except之间的语句)         ②如果没有异常发生,忽略except子句,try子句执行结束...,     而又没有任何的 except 把它截住,那么这个异常会在 finally 子句执行再次被抛出 六:扩展------------->断言机制     assert 等价于布尔真的判定,不满足抛出异常..., 102 # 而又没有任何的 except 把它截住,那么这个异常会在 finally 子句执行再次被抛出 103 # divide("2", "1") #从测试代码

57210

《流畅的Python》学习笔记之字典

类型的变种* 散列表的工作原理 泛映射类型 collections.abc 模块中有 Mapping 和 MutableMapping 这两个抽象基类,它们的作用是为 dict 和其他类似的类型定义形式接口...defaultdict 中的 default_factory 只会在 __getitem__ 里调用,在其他方法中不会发生作用。...不过,如果有一个类继承了 dict ,然后这个继承类提供了 __missing__ 方法,那么在 __getitem__ 碰到找不到键的时候,Python 会自动调用它,而不是抛出一个 KeyError...若表元为空,抛出 KeyError 异常。若不为空,则表元会有一对 found_key:found_value。...如果不匹配(散列冲突),再在散列表中再取几位,然后处理一下,用处理的结果当做索引再找表元。 然后重复上面的步骤。

2K100

Python的异常概念介绍以及处理

异常是一个事件,改事件会在程序执行过程中发生,影响程序的正常执行,一般情况下,在python中无法处理程序时就会发生异常,异常时Python的一个对象,表示一个错误,当Python脚本发生异常时,我们需要捕获并处理异常...在Python中使用raise语句抛出一个指定的异常,我们可以使用类或实例参数调用raise语句引发异常。...dic[3] except NameError: print('名字没有定义,报错了') except ZeroDivisionError: print('0不能当做除数,报错了') except KeyError...如果一个异常在 try 子句里(或者在 except 和 else 子句里)被抛出,而又没有任何的 except 把它截住,那么这个异常会在 finally 子句执行再次被抛出。...python标准异常 异常名称 描述 BaseException 所有异常的基类 SystemExit 解释器请求退出 KeyboardInterrupt 用户中断执行(通常是输入^C) Exception

58210

【Python进阶】Python中的异常处理

相信你有过这样的经验,你使用Python解释器去执行程序时,当程序运行到某处时,程序突然报错,实际上这就是Python解释器检测到了一个错误,触发异常,异常触发且没被处理的情况下,程序就在当前异常处终止...另外在在try语句块中,抛出用户自定义的异常执行except部分,变量 e 是用于创建MyError类的实例。...如下: 3.1 捕获所有异常 try: except: print('异常说明') 该方法不需要指定异常类型,它会捕获所有可能会出现的异常,包括键盘中断和程序退出请求。...可以看到执行了异常错误KeyError, NameError。 在上面的语句中我还引出了else语句和finally语句。...3.3抛出异常 通常我们用raise:关键字来抛出异常,其中raise后面紧跟着抛出异常的名称和抛出异常的详细信息。

1.1K30
领券