首页
学习
活动
专区
圈层
工具
发布

Django-rest-framework 是个什么鬼?

当用户访问某个 URL 时,调用绑定的视图函数进行处理。 编写视图函数的逻辑,根据 HTTP 请求类型,对请求的资源进行相应操作,这个过程通常涉及数据库的操作。...使用约定的资源描述格式(例如 XML 或者 JSON)序列化资源并将数据返回给客户端(通过 HTTP 响应)。 对比发现,前两步几乎是完全相同的。...不同点在于,在传统的基于模板引擎的开发方式中,资源使用 HTML 文档进行描述并返回给客户端,而在 RESTful API 的开发方式中,资源通常被描述为 JSON 或者 XML 的格式返回给客户端。...django 基于 Python 语言开发,因此资源通常由 Python 对象描述,那么在传递给客户端时,就要进行转换,例如将 Python 对象转换为 JSON 字符串,这个过程就叫做序列化。...django-rest-framework 同样针对 RESTful API 开发中常见的处理逻辑,提供了各种通用视图函数。 路由自动生成器(Router)。

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

    【REST架构】OData、JsonAPI、GraphQL 有什么区别?

    我对这两种查询语言都没有太多经验。据我所知,OData 是 Salesforce、IBM、Microsoft 使用的标准,并且非常成熟。为什么要切换到 JsonAPI 和/或 GraphQL?...有许多用于流行编程语言的库 - .NET、Java、JavaScript、PHP 和 Ruby。该规范允许动态资源,并且有一个服务文档列出了所有 API 端点供客户端发现。...OpenAPI 标准是一种与语言无关的标准,用于描述和定义 API。例如,您的 API 可以遵循上述标准之一(不包括 GraphQL),也可以使用 OpenAPI 3 进行记录。...大多数编程语言都有实现,以及许多其他工具,如 Web UI 生成器等。 使用 OpenAPI 等规范获得的最好的东西是围绕它们的工具——API 文档页面的生成器、客户端 SDK 代码的生成器等。...我个人的看法: 如您所见,有很多 RESTful 规范,而不是单一的通用标准。我同意 xumix 的观点——他们似乎都患有“这里没有发明”综合症。

    2.2K20

    上篇:运维人员不得不看的K8S API入门实战,呕心沥血整理得又臭又长,有人看吗

    因此,在使用 OpenAPI 规范时需要注意版本兼容性。接下来,分别了解一下V2和V3。...不过,在集群内部通信时,Protobuf仍然是最常用的序列化格式。...--client-key=tantianran.key 表示使用名为 tantianran.key 的客户端密钥文件作为用户凭据的一部分。客户端密钥用于对 API 服务器进行身份验证。...当要使用 Kubernetes REST API 来操作K8S各种资源时,可以根据自己喜欢的编程语言来选择合适的客户端库。...客户端库有官方支持的,也有社区维护的。官方支持的 Kubernetes 客户端库有Go、Python、C、Java等等,作为运维开发工程师,可以使用Go或者Python。

    1.6K30

    一文读懂:跨服务调用,用HTTP还是RPC?

    核心差异对比特性HTTP (以RESTful为例)RPC (以gRPC为例)通信协议文本协议(如JSON/XML)二进制协议(如Protobuf)性能表现头部开销大,序列化/反序列化开销大,性能相对较低报文体积小...HTTP响应:包含状态码、响应头和响应体客户端解析响应:处理结果数据RPC 调用流程客户端调用本地存根(stub):就像调用本地方法一样存根序列化参数:将参数序列化为二进制格式通过网络发送数据:使用自定义或标准协议传输服务端反序列化参数...选择 HTTP 的场景对外提供公共 API:为浏览器、移动App、第三方合作伙伴提供服务时,HTTP是通用标准,任何人都能轻松集成技术栈异构环境:当你的服务使用多种语言和框架编写,或者你无法控制所有调用方时...HTTP 和 RPC:对外暴露:使用 HTTP(REST/GraphQL)内部通信:使用 RPC(如 gRPC)所有对终端用户和第三方的API都通过一个 API 网关 暴露为标准的HTTP接口。...Java RPC框架,提供了丰富的服务治理功能总结选择 HTTP 还是 RPC 本质上是在通用性和性能之间做权衡。

    57110

    Kubernetes官方java客户端之六:OpenAPI基本操作

    等; 概览 本文是《Kubernetes官方java客户端》系列的第六篇,以下提到的java客户端都是指client-jar.jar; 前文《Kubernetes官方java客户端之五:proto基本操作...》已经提到,java客户端的基本功能由两个主要脉络组成,第一个是proto,主要功能是使用ProtoClient类提供的增删改查接口,这些接口用到的入参和返回对象所涉及到的java类,都是通过K8S的...protobuf生成的; 除了使用ProtoClient对K8S资源进行增删改查,还提供了另一种更强大的方式:OpenAPI,本章咱们就来一起学习OpenAPI相关的操作; K8S的OpenAPI 先抛开...的OpenAPI简介,接下来回到java客户端本身,看看它提供了哪些OpenAPI相关的能力; java客户端的OpenAPI 打开java客户端工程的源码如下图,红框1就是和OpenAPI相关的子工程...客户端之一:准备 》中创建的kubernetesclient工程,在里面新建子工程openapi,其pom.xml内容如下,要注意的是spring-boot-starter-json已经被排除,因此序列化工具会变为

    2.5K20

    Kubernetes官方java客户端之六:OpenAPI基本操作

    ,以下提到的java客户端都是指client-jar.jar; 前文《Kubernetes官方java客户端之五:proto基本操作 》已经提到,java客户端的基本功能由两个主要脉络组成,第一个是proto...,主要功能是使用ProtoClient类提供的增删改查接口,这些接口用到的入参和返回对象所涉及到的java类,都是通过K8S的protobuf生成的; 除了使用ProtoClient对K8S资源进行增删改查...,还提供了另一种更强大的方式:OpenAPI,本章咱们就来一起学习OpenAPI相关的操作; K8S的OpenAPI 先抛开java客户端不提,咱们来看看K8S本身的OpenAPI,地址是:https:...] 以上就是对K8S的OpenAPI简介,接下来回到java客户端本身,看看它提供了哪些OpenAPI相关的能力; java客户端的OpenAPI 打开java客户端工程的源码如下图,红框1就是和OpenAPI...客户端之一:准备 》中创建的kubernetesclient工程,在里面新建子工程openapi,其pom.xml内容如下,要注意的是spring-boot-starter-json已经被排除,因此序列化工具会变为

    2.8K40

    mybatisplus+swagger【后端专题】

    构造者模式:又称之为建造者模式 场景:当一个bean类重载了多个构造方法时,并且参数随机使用时,考虑使用构造者模式 谷歌的开源的protobuf协议生产的java bean赋值就是采用建造者模式 @Builder...Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求 ​ 内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper...框架 对java代码友好 界面简洁 国内比较活跃,主要是spring社区带动 功能比较多 缺点 对跨语言支持不友好(可以和knife4j整合解决这个问题) 代码需要引入相关依赖包和配置 文档相对缺少...Swagger Codegen:它可以通过为 OpenAPI(以前称为 Swagger)规范定义的任何 API 生成服务器存根和客户端 SDK 来简化构建过程。...,用于参数用实体类接收,value–表示对象名,description–描述 这种一般用在post创建的时候,使用对象提交这样的场景 @ApiModelProperty() 用于方法,字段; 表示对model

    2.7K30

    学习 OpenAPI 的一点记录

    1 gRPC 到 HTTP 的协议转换 2 OpenAPI Spec 驱动开发 2.1 Control Plane 中多模块对 OpenAPI Spec 的依赖 2.2 OpenAPI...这就牵涉到了两个事情: 一个是需要设计一种机制,允许用户只用某一种描述语言(可以是 Protobuf,也可以是 OpenAPI)做出接口定义,然后这个定义会被自动转述为另一种接口定义语言,从而实现通过最少的配置...或者说,写这个合约的语言,叫做 OpenAPI,它是世界通用的语言,用它写出来的合约叫做 OpenAPI spec,大家都能看得懂。...,并将结果再次转换后返回的过程;而后者则是提供一系列机制和工具,去完成定义和控制这个过程所需的接口定义、序列化、持久化、请求校验、接口版本管理等一系列操作。.../spec.yaml OpenAPI Generator 可以根据 OpenAPI spec 生成客户端、服务端 stub、文档等等,非常好用。

    71320

    drf的接口文档生成与管理

    总体目标是使客户端和文件系统源代码作为服务器以同样的速度来更新。...当接口有变动时,对应的接口文档也会自动更新 Swagger优势 Swagger可生成一个具有互动性的API控制台,可快速学习和尝试API Swagger可生成客户端SDK代码,用于不同平台上Java、Python...该参数直接透传至SchemaGenerator urlconf: 描述从哪个文件获取路由配置, 缺省值是urls, 该参数直接透传至SchemaGenerator public: 描述API文档是否公开, 如果未...4.6.4 校验文档有效性 为保证自动生成文档的有效性, 可以通过在get_schema_view中设置 validators 参数开启校验自动化生成文档是否符合OpenAPI2.0规范的功能 4.6.5...代码自动生成 使用Swagger/OpenAPI规范生成文档的好处之一, 就是能通过API文档自动生成不同语言的 SDK,该功能由swagger-codegen提供 see you ~ 参考: http

    5.5K10

    Kubernetes官方java客户端之五:proto基本操作

    等; 概览 本文是《Kubernetes官方java客户端》系列的第五篇,以下提到的java客户端都是指client-jar.jar; 经过前面四篇文章的准备和尝试,我们对java客户端有了初步了解,也成功运行了...hello world,接下来要做的是继续深入学习和实践,掌握这门利器; 两个主要脉络 java客户端的基本功能并不复杂,就是以何种手段发起对K8S资源的增删改查请求,把握以下两个主脉络即可: proto...主线:用K8S官方的protobuf定义将各种资源生成java类,用少量API处理这些对象(特点,API极少,每个API都通用,处理所有类型的资源对象); openapi主线:使用openapi工具,将所有资源都自动生成增删改查的...K8S官方java客户端的文章,有关K8S的protobuf详情不在这里展开,只给出一段关键脚本供您参考,这是根据proto自动生成代码时执行的脚本,用于下载protobuf文件,地址:https://...客户端中的java代码就是根据这些内容生成的: 结合前面的分析,再回到java客户端源码的子工程client-java-proto,可以找到generate.sh脚本生成的V1.java,这个java

    85820

    Kubernetes官方java客户端之五:proto基本操作

    ; 概览 本文是《Kubernetes官方java客户端》系列的第五篇,以下提到的java客户端都是指client-jar.jar; 经过前面四篇文章的准备和尝试,我们对java客户端有了初步了解,也成功运行了...hello world,接下来要做的是继续深入学习和实践,掌握这门利器; 两个主要脉络 java客户端的基本功能并不复杂,就是以何种手段发起对K8S资源的增删改查请求,把握以下两个主脉络即可: proto...主线:用K8S官方的protobuf定义将各种资源生成java类,用少量API处理这些对象(特点,API极少,每个API都通用,处理所有类型的资源对象); openapi主线:使用openapi工具,将所有资源都自动生成增删改查的...官方java客户端的文章,有关K8S的protobuf详情不在这里展开,只给出一段关键脚本供您参考,这是根据proto自动生成代码时执行的脚本,用于下载protobuf文件,地址:https://github.com...当然有,敬请期待下一篇,一起学习和实战openapi主线; 关于容器和镜像的环境 如果您不想自己搭建kubernetes环境,推荐使用腾讯云容器服务TKE:无需自建,即可在腾讯云上使用稳定, 安全,高效

    1.5K00

    Kubernetes官方java客户端之四:内部应用

    等; 概览 本文是《Kubernetes官方java客户端》系列的第四篇,以下提到的java客户端都是指client-jar.jar; 前文《Kubernetes官方java客户端之三:外部应用...java客户端的应用自身也部署在K8S环境中,如下图所示,名为DemoApplication的SpringBoot应用部署在K8S环境内,调用java客户端库的API对K8S进行各种操作,整体结构如下:...客户端之二:序列化和反序列化问题》提到的序列化问题吗?...上述代码中,log.info那段代码里对V1PodList执行序列化的是Gson,并且hello方法返回的也不是V1PodList实例,而是新做的一个List实例,这样做是因为jackson对V1PodList...客户端,成功获取了自身所在K8S环境的信息,通过前文和本章,咱们对K8S官方java客户端已经有了基本的认识,接下来的实战会开启这个客户端更丰富的能力;

    99830

    Kubernetes官方java客户端之三:外部应用

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 概览 以下提到的java客户端都是指client-jar.jar; 本文是《Kubernetes官方java...客户端》系列的第三篇,《Kubernetes官方java客户端:准备》一文中咱们为实战做好了准备工作,从本文开始进入实战阶段; 本文的目标是开发名为OutsideclusterApplication的SpringBoot...应用,该应用没有部署在K8S环境,使用的config文件是手动从K8S环境复制过来的,java客户端通过此config文件,能够远程访问到K8S上的API Server,实现所有客户端功能,整体部署情况如下图...gson作为序列化和反序列化工具(client-java.jar依赖了gson库);(这个问题在《Kubernetes官方java客户端之二:序列化和反序列化问题》一文有详细介绍) 新增OutsideclusterApplication.java...K8S官方java客户端的应用就完成了,接下来的实战会尝试将应用部署在K8S环境内,在K8S内部进行各项操作;

    90130

    Kubernetes官方java客户端之三:外部应用

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 概览 以下提到的java客户端都是指client-jar.jar...; 本文是《Kubernetes官方java客户端》系列的第三篇,《Kubernetes官方java客户端:准备》一文中咱们为实战做好了准备工作,从本文开始进入实战阶段; 本文的目标是开发名为OutsideclusterApplication...的SpringBoot应用,该应用没有部署在K8S环境,使用的config文件是手动从K8S环境复制过来的,java客户端通过此config文件,能够远程访问到K8S上的API Server,实现所有客户端功能...gson作为序列化和反序列化工具(client-java.jar依赖了gson库);(这个问题在《Kubernetes官方java客户端之二:序列化和反序列化问题》一文有详细介绍) 新增OutsideclusterApplication.java...K8S官方java客户端的应用就完成了,接下来的实战会尝试将应用部署在K8S环境内,在K8S内部进行各项操作; 你不孤单,欣宸原创一路相伴 Java系列 Spring系列 Docker系列 kubernetes

    1.4K40

    🚀 突破性更新!JeecgBoot v3.8.1 震撼来袭 — 引领 AI 低代码开发新纪元!

    、linux、macOS三大平台) 【新功能】“基于AK和SK认证鉴权OpenAPI功能” 解决对外API需求 【新功能】用户导入支持导入部门和角色 【新功能】提供新版uniapp的代码生成器模板 【新功能...· Issue #8163 安全检测发现1.9.4对应的springboot3版本存在组件高危漏洞 · Issue #3687 通知公告发送时建议增加指定组织 · Issue #8146 GitHub...Aicg编辑的流程中,只要放上脚本执行的节点,运行就会报错 · Issue #8333 性能监控的服务器信息、JVM信息页面报错 · Issue #8323 1.9.5 仪表盘 查询结果为空时显示问题...,如果传入的map中存在值为null时会导致异常出错,导出失败 · Issue #8230 autopoi使用模板导出时,如果在循环列后存在公式单元格,导出来后该单元格未空,公式没了 · Issue #8148...引领低代码开发模式(OnlineCoding-> 代码生成器 -> 手工MERGE),低代码开发同时又支持灵活编码, 可以帮助解决Java项目70%的重复工作,让开发更多关注业务。

    58420

    Github 火热的 FastAPI 库,站在了这些知名库的肩膀上

    这就是为什么在谈论版本 2.0 时通常会说“ Swagger”,对于版本3+来说是“ OpenAPI”。 启发 FastAPI 地方: 为API规范采用开放标准,而不是使用自定义架构。...它的工作方式是,在 Python 的文档字符串内部使用 YAML 格式的描述来为每一个函数自动生成文档。它会生成 OpenAPI 的 schemas。...使用这些框架,我们创建了几个 Flask 的全栈生成器。...启发 FastAPI 地方 使用模型字段的默认值为数据类型定义额外的验证,对编辑器支持更加友好,在 Pydantic 之前,这是不可行的。...并且由于它基于相同的Python类型提示,因此对编辑器的支持非常棒。 FastAPI使用它来处理所有数据验证,数据序列化和自动模型文档(基于JSON Schema)。

    6.2K30

    Kubernetes官方java客户端之四:内部应用

    应用,该应用并未部署在K8S环境,而是远程访问K8S环境内部的API Server,整体结构如下: [在这里插入图片描述] 除了前文中部署在外部的方式,还有一种常见场景:使用java客户端的应用自身也部署在...K8S环境中,如下图所示,名为DemoApplication的SpringBoot应用部署在K8S环境内,调用java客户端库的API对K8S进行各种操作,整体结构如下: [在这里插入图片描述] 本文的内容就是开发上图中名为...客户端之二:序列化和反序列化问题》提到的序列化问题吗?...上述代码中,log.info那段代码里对V1PodList执行序列化的是Gson,并且hello方法返回的也不是V1PodList实例,而是新做的一个List实例,这样做是因为jackson对V1PodList...客户端,成功获取了自身所在K8S环境的信息,通过前文和本章,咱们对K8S官方java客户端已经有了基本的认识,接下来的实战会开启这个客户端更丰富的能力; 关于容器和镜像的环境 如果您不想自己搭建kubernetes

    98650
    领券