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

RESTful API生命周期管理

开放ID连接(OIDC) 开放式ID连接(OIDC)扩展了OAuth 2,并将用户信息(身份层)作为请求的一部分。...文档 API文档一直是一个挑战,像Swagger和Miredot这样的工具往往不足以提供完整的信息,并引导我们依靠开发人员来指定隐含注释和语言特定的文档,如JavaDocs。...使用RAML规范将文档作为核心优先级,文档与代码本身保持同步。这种令人耳目一新的好处是由于RAML规范作为API本身的接口(或契约),与提供服务结果的底层业务逻辑同步。...虽然没有正确或错误的答案,但建议是设定一个标准,坚持这一决定,以减少消费者对您的API的混淆。 URI 基于URI的版本包括RESTful API的URI中的版本号。...+json 同样地,URI始终是相同的,但是对这种方法的批评者指出,版本引用是隐藏的,并且定制的互联网内容类型可能看起来很乱,难以测试。

3.9K70

6.REST的应用经验以及教训

自从1994年以来,REST架构风格被用于指导Web架构的设计和开发工作,最重要的两点体现是在设计HTTP和URI两个互联网规范协议中,以及实现这些规范的libwww-perl客户端库,Apache HTTP...为此Fielding博士在08年专门写过一篇文章来解释 1 Web标准化 本系列在一开始就提到,创造REST的目的就是为Web创建一个架构模型,使其来指导Web的架构设计以及相关的协议规范的开发。...一开始这三个规范都使由IETF来负责的,后来Web之父Berners-Lee创建了W3C,使其作为Web架构的智库,并为Web编写规范以及实现相关所需的资源,随后HTML就由W3C来专职负责了(关于这部分的历史缘由就不解释了...1.1的主要架构师,并且最终创作了URI通用语法标准的URL规范的修订版。...2.1 重新定义资源 早期Web把URI定义为文档的标识符。创作者使用网络上一个文档的位置来定义标识符,其他人然后通过Web协议来获取这个文档。

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

    【ASP.NET Core 基础知识】--Web API--RESTful设计原则

    资源的命名规范 语义明确: 资源的命名应具有清晰的语义,反映其实际内容或用途,使其容易理解。 使用名词: 在资源的命名中应该使用名词,而不是动词,因为HTTP方法已经表示了对资源的操作。...遵循领域规范: 在特定领域中,可能有一些行业或标准的命名规范,应该遵循这些规范。 版本控制: 如果有多个API版本,可以在资源命名中包含版本信息,以确保不同版本的资源不发生冲突。...这提高了系统的容错性,即使某一请求失败,不会影响其他请求的处理。 更好的可见性: 无状态性有助于提高系统的可见性,每个请求都包含足够的信息,使其能够独立解释和理解。这使得系统更易于调试和监控。...HATEOAS还促进了API的自文档化,因为超媒体本身包含了关于资源和操作的信息,减少了对外部文档的依赖。...统一标准和规范: 制定一致的API标准和规范,确保团队之间共享相同的设计原则。使用API描述语言(如OpenAPI)来文档化API,提供清晰的接口定义。

    46101

    《RESTful API版本控制的哲学思辨:稳定性与创新性的终极平衡》

    以一款在线办公软件为例,当开发者想要添加协同编辑的实时预览功能时,可以通过新的API版本来实现,而不影响那些只使用基础文档编辑功能的用户。软件开发过程中,新功能的上线总是伴随着一定的风险。...将版本号直接嵌入到URI路径中,是一种最为直观且常见的版本控制方式。...这种方法的优势在于保持了URI的简洁和纯净,使其更符合RESTful的设计理念。然而,它也有不足之处,由于版本信息隐藏在请求头中,不如URI版本控制那么直观,容易被忽视。...把版本号作为查询参数附加在URI后面,如 https://api.example.com/users?version=1 。这种方式的好处是不会改变URI的主体结构,使用起来比较灵活,也便于理解。...这种方式严格遵循了HTTP协议中关于内容协商的规范,从理论上来说是一种非常优雅的版本控制方式。它能够清晰地区分不同版本的API响应格式,使得客户端和服务器在数据交互时更加明确。

    11210

    2017前端开发手册四-前端开发人员应该掌握的Web技术

    (DOM又名) 网络的API(又名HTML5和朋友或浏览器的API) Web内容无障碍指南(又名WCAG)无障碍富互联网应用程序(又名ARIA) 这些技术与相关文档和规范定义如下。...每个文档的节点以树状结构组织,称为DOM树。在DOM树中的对象可以被寻址,并通过使用所述对象的方法操纵。一个DOM的公共接口在其应用程序编程接口(API)来指定。...JavaScript是基于原型的编程语言,使其成为一个多范式语言、面向对象和功能的编程规范。...- 维基百科 大多数相关规范/文档: ECMAScript®2017年语言规范 5 网络的API(又名HTML5API) 当使用JavaScript网页编写代码,有许多可用的API。...URL是一种特定类型的统一资源标识符(URI)的,虽然很多人使用这两个词可以互换。URL表示的手段来访问指定的资源,这是不是每一个URI的真实。

    1.7K80

    全面详解互联网企业开放API的 “守护神”

    CALLBACK URI是拼接授权URI的时候就传过来了),这个时候发生了第二次URI重定向。...2-微信小程序 那么微信小程序采取的授权流程又是怎样的呢,我们到微信小程序官方文档上去搜索会发现,微信的规范是要求开发者采用客户端凭据的方式来获取调用后台接口的凭据ACCESS_TOKEN。...同时客户端凭据这种授权方式中也不会有刷新令牌,因为授权系统会认为客户端可以随时获取新令牌。...实际上Oauth的使用方没有按照Oauth的标准去接入,涉及到的上述公司均反馈是出现在他们平台上的第三方系统,而不是公司的自有站点。...总结 开放平台的基础技术需要 “两条腿” 能够跑起来,这两条腿分别是网关和Oauth。网关可以让内部的API被外部调用,Oauth可以保护这些被调用的API。Oauth是一种协议,也是一种工具。

    74140

    全面详解互联网企业开放API的 “守护神”

    CALLBACK URI是拼接授权URI的时候就传过来了),这个时候发生了第二次URI重定向。...2-微信小程序 那么微信小程序采取的授权流程又是怎样的呢,我们到微信小程序官方文档上去搜索会发现,微信的规范是要求开发者采用客户端凭据的方式来获取调用后台接口的凭据ACCESS_TOKEN。...同时客户端凭据这种授权方式中也不会有刷新令牌,因为授权系统会认为客户端可以随时获取新令牌。...实际上Oauth的使用方没有按照Oauth的标准去接入,涉及到的上述公司均反馈是出现在他们平台上的第三方系统,而不是公司的自有站点。...总结 开放平台的基础技术需要 “两条腿” 能够跑起来,这两条腿分别是网关和Oauth。网关可以让内部的API被外部调用,Oauth可以保护这些被调用的API。Oauth是一种协议,也是一种工具。

    84840

    针对近期“博全球眼球的OAuth漏洞”的分析与防范建议

    首先需要明确的一点是,漏洞不是出现在OAuth 这个协议本身,这个协议本身是没有问题的,之所以存在问题是因为各个厂商没有严格参照官方文档,只是实现了简版。...像weibo、QQ、淘宝等网站都提供了OAuth服务,提供OAuth服务的网站一般都有很多开放的API,第三方应用会调用这些API来开发他们的应用以让用户拥有更多的功能,但是,当用户在使用这些第三方应用的时候...规范还在IETF OAuth工作组的开发中,按照Eran Hammer-Lahav的说法,OAuth于2010年末完成。...漏洞说明 首先需要明确的一点是,漏洞不是出现在OAuth这个协议本身,这个协议本身是没有问题的,之所以存在问题是因为各个厂商没有严格参照官方文档,只是实现了简版。...微博安全团队4月中旬已经率先发现该问题,并联合业务部门进行威胁的评估和落地修复方案的敲定,截止今天中午前,回调URL校验和校验绕过漏洞在开放平台已经修复上线。 3.

    1.2K100

    Nginx葵花宝典—草根站长配置Nginx运维百科全书

    -x用来判断文件是否可执行请求URI(路径)规范化。...所谓规范化,就是先将URI中形如“%XX”的编码字符进行解码,再解析URI中的相对路径“.”和“..”部分, 另外还可能会压缩相邻的两个或多个斜线成为一个斜线。...举例说明:若REQUEST_URI为//trip/t.php,则规范化后为/trip/t.php,Nginx将规范前的值存放在$request_uri中,而规范化后的值存放在$uri中。...$document_root 当前请求的文档根目录或别名——当前请求在root指令中指定的值。$args 这个变量等于GET请求中的参数。$query_string 与$args相同。...$realpath_root当前请求的文档根目录或别名的真实路径,会将所有符号连接转换为真实路径。

    1.1K20

    为什么我们说云原生时代,企业数字化转型更需要做好 API 全生命周期管理?

    每一个 API 的价值都值得单独考量,从商业运营角度看: 流量:可以给初级用户开放少量流量,给重要用户开放大量流量。 接口:给初级开放初级接口,给重要用户开放高级接口。...Erda API 设计中心将 API 文档托管到代码仓库中,这一设计使得接口描述和接口实现代码关联在一起。开发人员进入代码仓库,选择对应的代码分支,维护接口文档,可以很好地保持文档和新开发功能的同步。...文档托管到仓库中,还意味着可以基于分支进行文档协作。不同用户编写同一篇文档时,只要从源分支切出新的分支,在新的分支上编辑文档,然后再进行分支的合并。...同一服务不同接口的负责人,随时可以设计自己负责的接口,又随时合并回去,不会相互影响和阻塞。 API 集市 API 集市使用了语义化版本机制来实现 API 文档的版本管理。...版本名称与语义化版本号中的 major 是唯一对应的,版本名称可以视作是主版本号 major 的别名。

    82920

    We Do Sleep At Night, We Do REST Right

    微软也发布过关于如何设计 REST API 的开发指南,但是不幸的是,REST 的创始人 Roy Fielding 认为微软的 REST API 规范与 REST 没有多大关系。...这个工作是与我所创作的 HTTP 和 URI 两个互联网规范共同完成的,这两个规范定义了在 Web 上进行交互的所有组件所使用的通用接口。”...尽管直到2000年,这只“鸡”才在下完鸡蛋后,出现在了世人面前。 ?...早先的 Web 与 REST 所描述的模型有着大量出入,然而正是在对应的 HTTP 和 URI 规范出炉后,才有了所谓“现代 Web”的说法。...在 Github REST API v3 中,我们可以在很多 apis (如列表翻页)的响应体中看到 Link Header,对应引导的 Uri 同样有相关标准,即 Uri Templates(RFC

    1.1K10

    三个案例看 Nginx 配置安全

    查看 Nginx 文档,可以发现有三个表示 uri 的变量: $uri $document_uri $request_uri 解释一下,1和2表示的是解码以后的请求路径,不带参数;3表示的是完整的URI...正确的做法应该是如下: location / { return 302 https://$host$request_uri; } 另外,由$uri导致的 CRLF 注入漏洞不仅可能出现在上述两个场景中...假设静态文件存储在 /home/ 目录下,而该目录在 url 中名字为 files ,那么就需要用 alias 设置目录的别名: location /files { alias /home/;...这个有趣的漏洞出现在了 Pwnhub 上一期比赛《寻找 SNH48》中,@Ricter师傅的题目。 如何解决这个漏洞?只需要保证location和alias的值都有后缀/或都没有这个后缀。...解决这类漏洞,最根本的方法是仔细阅读官方文档,文档里说明了很多配置文件错误和正确的用法。最忌去百度网上的一些解决方法,很多错误就是一传十十传百,最后流传开来的。

    1.2K10

    Web API核查表:设计、测试、发布API时需思考的43件事

    HTTP篇 HTTP 1.1规范RFC2616是一个非常大的文档,下面我们节选了一些可能会对API产生影响的内容分享给大家: 1.Idempotent方法:GET、HEAD、PUT、DELETE、OPTIONS...(RFC2616 §6.1.1) 6.410 Gone:“410 Gone”响应代码是一个很少使用的响应式代码,其主要是通知客户端资源出现在URL中,但实际上并没有。...15.规范URL:对于多资源URL,RFC6596定义了统一的方法来规范网址链接。...而对于实用主义者,它们会把版本放入到API的URL中(例如:a/v1/path),所以,除非是处在一个安全的网络状态下,否则API可能不会按照预期那样工作。...如果API不支持“100 Continue”,或许会产生另一个性能缺陷,导致客户端禁用。 其它 40.文档:编写API文档是令人厌烦的,但是手写的API文档通常是最好的。

    86360

    VBA: 隐藏模块中出现编译错误:的解决对策

    当代码与此应用程序的版本或体系结构不兼容(例如文档中的代码面向 32 位 Microsoft Office 应用程序,但它试图在 64 位 Office 上运行)时,通常会发生此错误。...1 此错误的原因和解决方案 此错误的原因: 当受保护(隐藏)的模块内的 VBA 代码中存在编译错误时会引发此错误。由于模块是受保护状态,因此不会公开具体的编译错误。...(2)如果没有访问文档中 VBA 代码的权限,请与文档作者联系,让作者更新隐藏模块中的代码。...q其中有三个重要的新增功能,分别是:LongPtr 类型别名、LongLong 数据类型和 PtrSafe 关键字。...3 VBA工程密码破解 当受保护(隐藏)的模块内的 VBA 代码中存在编译错误时,由于模块是受保护状态,因此不会公开具体的编译错误。此时,需要取消对该模块的保护。

    16.1K11

    RESTful架构API风格与相关规范 极客开发者

    如微博开放API和Github开放API就严格遵循了RESTful规范。...在互联网中,我们可以使用URI(统一资源定位符)来表示每一个具体的资源,因此,每一个互联网资源都一个独一无二的URI地址。 2....也正是因为有了一致的风格规范,让读API的人更好地理解API,甚至不用阅读文档,就知道API要实现的某个资源的某种“状态转化”。根据Github开放API或者微博开放API的设计风格。.../api/ 3.API版本 应当将API版本放在URL中,如微博开放API就将版本号放在URL中: http://api.weibo.com/2/ 如果我们把版本号理解成资源的不同表述形式的话,API...RESTful API最好做到Hypermedia,即超媒体,在返回结果中提供链接,连向其他API方法或者一些文档,使得用户不查文档,也知道下一步应该做什么。

    47210

    看看MAUI候选版本3!

    Shell Base Controls Flyout Yes Yes Tabs Yes Yes Navigation URI Based Push/Pop Passing Data URI Based...更明确地说,您可以将ShellContent导航别名包装起来,以清楚地指示 Shell 如何呈现您的 UI。...您还可以设置弹出按钮的宽度并使其保持打开或完全隐藏。以下是一些不同设计的示例: 要显示选项卡,您只需替换FlyoutItem为Tab....有关自定义flyout的更多信息,请查看Shell Flyout文档。 当您需要导航到应用程序中更深入的页面时,您可以声明自定义路由,并通过 URI 导航——甚至传递查询字符串参数。...public string SelectedSubSection { get;set;} ... } 除了参数之外,您还可以通过 .NET MAUI 引入的新 API 传递复杂的数据对象: //

    1.3K20

    在吗?看看MAUI候选版本3!

    Shell Base Controls Flyout Yes Yes Tabs Yes Yes Navigation URI Based Push/Pop Passing Data URI Based...更明确地说,您可以将ShellContent导航别名包装起来,以清楚地指示 Shell 如何呈现您的 UI。...您还可以设置弹出按钮的宽度并使其保持打开或完全隐藏。以下是一些不同设计的示例: 要显示选项卡,您只需替换FlyoutItem为Tab....有关自定义flyout的更多信息,请查看Shell Flyout文档。 当您需要导航到应用程序中更深入的页面时,您可以声明自定义路由,并通过 URI 导航——甚至传递查询字符串参数。...public string SelectedSubSection { get;set;} ... } 除了参数之外,您还可以通过 .NET MAUI 引入的新 API 传递复杂的数据对象: //

    1.9K10

    规范即治理函数:LLM 赋能的软件架构治理与架构设计

    这个问题出现在:ArchGuard 一直难以对一个项目的架构建模,有太多抽象的内容无法建模,而这些对于 LLM 是很容易的: 当前(As-Is)架构或者未来(To BE)架构。...比如说,在 Co-mate 的 REST API 治理场景下,我们使用的 LLM 能力包括了: 分类:让 LLM 分析 API 文档,让我们后续根据 URI、HTTP Action、安全等几个不同的能力维度来选择适合的工具...逻辑推理:让 LLM 分析 API 文档的 URI Construction 部分,生成用于检查的 URI 正则表达式部分,以及适合于人类阅读的 by example 部分。...要素二:丰富基于规范的架构治理 “函数” 再回到我们的 API 规范上,我们从网上找了一个 API 规范示例(可以见 ArchGuard Co-mate 源码里的 docs/ ),初步将其分解为五个维度...所以,结合 LLM 的能力、API 分类、检查频率等,将其划分了多个维度: rest_api { uri_construction { rule("/api\\/[a-zA-Z0

    63621

    Yii2.0 RESTful API 基础配置教程

    => true, 'showScriptName' => false, 'rules' => [ ], ], 打开common\config\bootstrap.php添加以下别名...我看了好多,他们都是本地使用 Apache ,并且 index.php 文件没有隐藏,他们访问地址也不叫 index.php。...所以在此说明一下吧 Apache 配置 # 设置文档根目录为 "path/to/api/web" DocumentRoot "path/to/api/web" uri/ /index.php$is_args$args; } 为什么要单独创建API应用 单独创建API应用,目的是便于维护,可以避免以下问题 配置的冲突 控制器的命名不便 url美化规则冲突 分工明确...response->statusCode = 200; }, ], 这里统一使用 200来表示,当然并不是所有的都是 200,你应该具体情况具体对待,切记不要乱使用 任意加各种标识,请 遵循这些 规范

    1.3K20
    领券