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

什么是REST API

id=123 所有这些都是为用户123获取数据的有效选项。当你有更复杂的操作时,组合的数量会进一步增加。 归根结底,你如何格式化URL并不重要,但整个API的一致性很重要。...(请注意,旧版浏览器中的Fetch()需要设置credentials初始选项)。因此,一个API请求可以被验证,以确保一个用户已经登录并拥有适当的权限。 第三方应用程序必须使用替代的授权方法。...API身份验证将根据使用上下文而有所不同: 在某些情况下,第三方应用程序被视为像任何其他具有特定权利和权限的登录用户。例如,一个地图API可以将两点之间的方向返回给调用的应用程序。...阻止来自未知域名或IP地址的访问。 阻止意外的大型有效负载。 考虑速率限制,也就是使用同一API令牌或IP地址的请求被限制在每分钟N个以内。 以适当的HTTP状态代码和缓存头进行响应。...REST的难题导致Facebook创建了GraphQL--一种网络服务查询语言。把它看作是网络服务的SQL:一个单一的请求定义了你所需要的数据以及你希望它如何返回。

6K20

BI仪表板数据可视化大屏

image.png 在这里需要注意 生成令牌时使用的用户名,应具有待访问报表或仪表板的查看权限。...在浏览器中打开 http://localhost:51980/graphiql 网页(注意URL末尾的graph与ql之间有一个字母i),可随时调试API,如下图: image.png 接下来我们再来演示如何在...如果希望业务系统的不同用户,根据数据权限的不同,看到不同的报表内容,就需要以业务系统当前用户的身份登录,获取不同的令牌,再去查看文档内容。...将业务系统的当前登录用户传给BI系统时,并以该用户身份登录的过程,就是用户身份集成。 用户身份集成有两种方式:(1)使用URL参数传递用户信息;(2)单点登录集成。前者更简便,后者更安全。...单点登录集成 如果业务系统有更高的安全性要求,可在业务系统登录画面中,通过登录API,以实现单点登录集成,并将获取的令牌放在会话变量中。

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

    当.Net撞上BI可视化,这3种“套路”你必须知道

    输入令牌信息,单击" 生成令牌"按钮即可生成该用户名的令牌字串;单击右侧的获取令牌按钮即可将令牌复制。 在这里需要注意 生成令牌时使用的用户名,应具有待访问报表或仪表板的查看权限。...在浏览器中打开 http://localhost:51980/graphiql 网页(注意URL末尾的graph与ql之间有一个字母i),可随时调试API,如下图: 接下来我们再来演示如何在ASP.NET...如果希望业务系统的不同用户,根据数据权限的不同,看到不同的报表内容,就需要以业务系统当前用户的身份登录,获取不同的令牌,再去查看文档内容。...将业务系统的当前登录用户传给BI系统时,并以该用户身份登录的过程,就是用户身份集成。 用户身份集成有两种方式:(1)使用URL参数传递用户信息;(2)单点登录集成。前者更简便,后者更安全。...单点登录集成 如果业务系统有更高的安全性要求,可在业务系统登录画面中,通过登录API,以实现单点登录集成,并将获取的令牌放在会话变量中。

    3.8K20

    提高 API 性能的 5 大常见方法

    REST API 与 GraphQL 在 API 设计方面,REST 和 GraphQL 各有优缺点。...但是,它将复杂性转移到客户端,如果保护不当,可能会允许滥用查询 缓存策略可能比 REST 更复杂。 REST 和 GraphQL 之间的最佳选择取决于应用程序和开发团队的具体要求。...令牌与 API 密钥 令牌(例如 JWT)和 API 密钥都用于身份验证和授权,但它们的用途不同。让我们了解两者的简化流程。 令牌流 最终用户登录到前端 Web 应用程序。...登录凭据将发送到身份服务。 身份验证成功后,将颁发并返回 JWT 令牌。 前端使用 Authorization 标头中的 JWT 进行 API 调用。...API 网关拦截请求并验证 JWT(签名、到期和声明)。 如果有效,网关将发送验证响应。 经过验证的请求将转发到用户身份验证的服务。 该服务处理请求并与数据库交互以返回结果。

    31500

    一种不错的 BFF Microservice GraphQLREST API 层的开发方式

    /:id) starwars - 如何使用 Reactive Extensions 进行 API 编排的示例(ForkJoin)(/starwars/people/:id) hystrix - 如何对...API 使用熔断模式的示例 (/hystrix) scraper - 如何使用 scrape-it 从网站上抓取数据的示例 (/scraper) 使用 swagger UI 以获得示例 API 的完整列表...文件 定义 API swagger 规范 如果 express 路由中没有可用的实现,那么中间件将为这些 api 创建模拟 访问 nXplorer (/swagger) 提供的 swagger ui,...如果启用了 JWT 安全性(环境变量 JWT_AUTH 为 true),我们需要使用登录突变 API 来获取示例 JWT 令牌(当前设置为1小时到期) Step 1 - 使用登录 mutation(突变...)来获取有效用户的 jwt 令牌。

    3.4K10

    终极 API 学习路线图

    OAuth 中涉及的实体是用户、服务器和身份提供者 (IDP)。 OAuth 令牌有什么作用? 使用 OAuth 时,您将获得一个代表您的身份和权限的 OAuth 令牌。...此令牌可以做一些重要的事情: 单点登录 (SSO):使用 OAuth 令牌,您只需一次登录即可登录多个服务或应用程序,让生活更轻松、更安全。...跨系统授权:OAuth 令牌允许您在各种系统之间共享您的授权或访问权限,因此您不必在任何地方单独登录。...访问用户配置文件:具有 OAuth 令牌的应用程序可以访问您允许的用户配置文件的某些部分,但它们不会看到所有内容。...这允许单个登录在多个站点上工作。 OAuth2 - 允许一个站点对另一个站点上的数据进行有限访问,而不会泄露密码。 QR Code - 将随机令牌编码为 QR 码以进行移动登录。

    71410

    提高微服务安全性的11个方法

    我将在下面显示如何加密密钥。 你可能还想强制使用HTTPS。你可以在我以前的博客文章“ 保护Spring Boot应用程序的10种出色方法”中看到如何做。...安全的GraphQL API GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。...该规范,还允许你通过向/userinfo端点发送访问令牌来查找用户的身份。你可以使用OIDC发现来查找此端点的URI,这提供了一种获取用户身份的标准方法。 ?...这种方法的优点: 服务可以使用访问令牌与任何其他内部服务进行对话(因为它们都是连接到同一个授权服务器) 有了一个可以查找所有范围和权限定义的地方 开发人员和安全人员更易于管理 交互更快 缺点: 如果一项服务的令牌遭到破坏...如果你拥有诸如域控制器之类的组件,来控制网络流量,那么用户只要登录成功,就会向你的网络管理员团队发送警报。 这只是尝试检测异常,并对异常做出快速反应的一个示例。

    1.7K00

    只需使用VS Code的REST客户端插件即可进行API调用

    但现在,如果你使用 VS Code(为什么不呢,用它写代码多好啊!),生活就变得简单了。我们不再需要退出 IDE 来测试 API,因为现在已经有一个插件可以做到这一点:REST Client。...下面,我将向你展示如何进行每一种类型的基本 CRUD 操作,再加上如何像 JWT 令牌一样进行需要认证的 API 调用,使用我在本地运行的 MERN 用户注册应用来指向调用。...POST 示例 我将介绍的第一个示例是 REST Client 的 POST,因为用户在我的应用程序中必须先注册才能进行其他任何操作(毕竟,这只是一个登录服务)。...DELETE 示例 经过我上面提供的其他例子,这个示例应该很简单 这个 DELETE 需要的查询参数是 username,这样它就知道到底要删除数据库中的哪个用户,而且还需要验证这个用户是否有资格提出这个请求...支持 GraphQL?没问题!认证选项?没问题!REST Client 提供了所有这些选项以及更多,而且设置和使用起来非常简单。我肯定会在以后的项目中更多地使用它。

    9.9K20

    让部署更快更安全,GitHub 无密码部署现已上线

    假如用户的身份提供者是验证方能够信任的提供者,则可以在称为 ID 令牌的 Json Web 令牌(JWT) 中以声明的形式提供相关用户数据。...使用 GitHub Actions,第一步是在云提供商的身份和访问管理配置中将 GitHub 注册为外部身份源。在执行工作流时,管道可以访问管道唯一运行范围内的 ID 令牌。...令牌包括令牌的期望受众、其持有者的标识符以及其他元数据。 然后,云提供商可以使用该信息来为任何的后续操作颁发短期凭证,例如访问令牌。...目前 GitHub Actions 支持 Hashicorp Vault、亚马逊网络服务、Azure 和谷歌云平台。...所有计划都可以使用 GitHub Actions OIDC 登录云提供商,而无需额外的费用。

    1.3K10

    ⚡REST 和 SOAP 协议有什么区别?

    API 规定了不同的软件组件应如何以编程方式进行交互和通信。最常见的 API 类型就是 Web API。网络应用(包括网站)向 Web API 或网络服务发送请求,要求向用户显示数据。...它们虽然都是规范,但却不能把它们相提并论,有一个微妙的区别在于,REST 是一种 API 架构风格,而 SOAP 则是一种访问网络服务的协议。它们看似相互竞争,但两者都有各自的使用场景。...REST 和 SOAP 都是规范,为客户如何访问网络服务、与网络服务交互以及它们所暴露的功能提供了标准。如前文所述,REST 是一种 API 架构风格,而 SOAP 是一种数据传输协议。...从 GraphQL API 请求数据比使用 REST 更高效。使用 REST 时,有单独的资源 URL(有时多达数百个)来暴露 API 的功能。...如果你需要从两个资源中收集信息,你必须向每个资源 URL 发出请求。而使用 GraphQL,所有 API 数据都可以通过一次查询请求获取。客户端使用过滤器缩小查询范围,从而从一个 API 中检索数据。

    1.8K00

    REST API 的安全认证,从 OAuth 2.0 到 JWT 令牌

    OAuth 2.0 看起来像: 用户名 + 密码 + 访问令牌 + 过期令牌 工作原理: OAuth 2.0 标准的核心思想是,用户使用用户名和密码登录系统后,客户端(用户访问系统的设备)会收到一对令牌...访问令牌用于访问系统中的所有服务。到期后,系统使用刷新令牌生成一对新的令牌。所以,如果用户每天都进入系统,令牌也会每天更新,不需要每次都用用户名和密码登录系统。...刷新令牌也有它的过期时间(虽然它比访问令牌长得多),如果一个用户一年没有进入系统,那么很可能会被要求再次输入用户名和密码。...OAuth2 + JSON Web 令牌 看起来像: 用户名 + 密码 + JSON数据 + Base64 + 私钥 + 到期日期 工作原理: 当用户第一次使用用户名和密码登录系统时,系统不仅会返回一个访问令牌...只需要使用你的 http 头信息和这个密钥进行签名。然后将签名字符串和你作为签名的字符串进行比较;如果相同那么就知道你是谁。 最大的好处是你只需要发送一次用户名和密码 - 就可以获得令牌。

    4K30

    深入理解OAuth 2.0:原理、流程与实践

    在现代网络环境中,用户的数据通常分散在不同的网络服务中,如何安全、有效地进行数据访问和分享,是一个重要的问题。...访问令牌(Access Token): 访问令牌是授权服务器发放给客户端的一个凭证,表示客户端有权访问资源所有者的资源。访问令牌有一定的有效期,过期后需要使用刷新令牌来获取新的访问令牌。...如果验证成功,认证服务器将访问令牌返回给客户端应用。 4. 客户端模式(Client Credentials) 客户端模式主要用于没有用户参与的后端服务(如开放API的场景)。...在存储访问令牌时,也应该使用适当的加密措施进行保护。 刷新令牌的使用和保护 刷新令牌通常有较长的有效期,甚至可以设置为永不过期。因此,如果刷新令牌被攻击者获取,他们就可以持续访问用户的资源。...例如,可以使用绝对匹配而不是模糊匹配来验证重定向URI,可以使用刷新令牌来获取新的访问令牌,而不是让用户重新登录等。

    36.4K712

    秘密任务 3.0:如何通过 JWT 认证确保 WebSockets 安全

    特工通过安全的 API 登录总部特工提供其 操作凭证(例如,用户名和密码或多因素认证)。请求通过 HTTPS 发送,以防止监听。...服务器验证凭证并发放 JWT 令牌如果认证成功,服务器生成一个 JWT(JSON Web Token),其中包含:特工的 唯一 ID特工的 授权级别一个 过期时间 用于强制会话时限JWT 使用 私钥 签名...特工如何处理 JWT 令牌浏览器 自动存储 Cookie,并在随后的请求中自动附带。不需要客户端手动存储令牌。令牌对 JavaScript 不可访问,防止 XSS 攻击。...正在重试...");});✅ 现在,只有拥有有效清除令牌的特工才能访问任务更新!5️⃣ 特工安全协议:最佳实践✅ 使用 HTTP-only Cookies 存储 JWT(防止敌人 XSS 攻击)。...Apipost 的好处:一体化 API 解决方案 → 设计、测试、调试、CI/CD 集成、模拟服务、无缝文档化 —— 一应俱全。无需登录 → 直接开始使用,无需账号注册。

    83900

    GitHub 废除基于密码的 Git 身份验证

    2020 年11 月 13 日——所有通过 REST API进行身份验证的操作都需要个人访问或 OAuth 令牌(使用 GraphQL API 进行身份验证已经需要个人访问令牌)。...尽管这些安全验证方式有了一些改进,但是由于历史原因,未启用双重身份验证的客户仍能够使用其 GitHub 用户名和密码继续对 Git 和 API 操作进行身份验证,导致这部分用户账户安全受到威胁。...使用用户的密码直接访问 GitHub.com 上的 Git 存储库的任何应用程序/服务。 不受更改的影响: 如果用户的帐户启用了双重身份验证,需要使用基于令牌或基于 SSH 的身份验证。...用户需要做什么 对于开发人员,如果用户现在需要使用密码对 GitHub.com 的 Git 操作进行身份验证,则必须在 2021 年 8 月 13 日之前通过HTTPS(推荐)或 SSH 密钥开始使用个人访问令牌...这将要求用户通过 Git 和第三方集成对所有经过身份验证的操作使用个人访问令牌。

    2.2K20

    从Java到Vue的全栈开发实战:一个真实面试官与程序员的对话

    **李晨:** 我觉得第一步应该是评估现有API是否需要重构,然后选择合适的GraphQL服务器,比如Apollo Server或Express-GraphQL。...接着,逐步替换部分REST API为GraphQL查询,确保兼容性。 **王工:** 不错,这个思路是对的。不过要注意,GraphQL虽然灵活,但也有一定的复杂度,需要团队有一定的经验才能驾驭。...**李晨:** 有,我们用它来做用户认证和权限控制。比如,我们配置了基于JWT的令牌验证,确保只有授权用户才能访问特定的API。 **王工:** 那你能说说JWT的工作原理吗?...**李晨:** 有,我们在第三方登录功能中用到了OAuth2,比如微信登录和GitHub登录。我们使用了Spring Security OAuth2来简化集成过程。...**王工:** 那你能说说你是如何使用Ant Design Vue的吗? **李晨:** 比如,在用户管理页面中,我们使用了Table组件来展示用户列表,并结合Form组件进行表单输入。

    23310

    从Java到Vue:一个全栈开发者的实战面试经历

    又是如何解决的? **应聘者**:最大的难点在于前后端数据交互的统一。我们最初使用的是REST API,但随着功能增加,接口变得非常复杂。...看来你对GraphQL有一定的理解。 **应聘者**:谢谢! ## 第二轮:前端技术与框架选择 **面试官**:接下来,我想了解一下你在前端方面的技术栈。...此外,我们还经常集成Swagger来生成API文档,方便前后端协作。 **面试官**:你提到Swagger,能演示一下如何配置一个简单的API文档吗? **应聘者**:当然可以。...**应聘者**:是的,我们通过Spring Security实现了基于JWT的认证机制。用户登录后,服务器会返回一个JWT令牌,后续请求都需要携带该令牌。...**应聘者**:我们主要使用Redis来缓存热点数据,比如商品信息和用户登录状态。同时,我们也使用Caffeine来做本地缓存。 **面试官**:那你是如何保证缓存的一致性的?

    15210

    微服务网关——设计篇

    hash的性价比最高 聚合服务 聚合服务有两种方案: GraphQL:一种用于 API 的查询语言。...使用GraphQL有三种可选方案 在网关前增加一个聚合服务Server,基于GraphQL来实现服务聚合(也可以使用编码的形式来处理,此服务主要是IO密集型操作,故可以使用擅长IO密集型操作的技术,比如...通常情况下,使用令牌桶算法来实现访问速率的控制,常用的令牌桶算法有两种: 漏桶算法:水(请求)先进入到漏桶里,漏桶以一定的速度出水,当水流入速度过大会直接溢出。...可以看出漏桶算法能强行限制数据的传输速率,但是某些情况下,系统可能需要允许某种程度的突发访问量,此时可以使用令牌桶算法。 令牌桶算法:系统会以一个恒定的速度向桶里放入令牌。...对于访问鉴权流程类似,服务端根据token从缓存中获取登录用户信息,根据用户角色、当前访问的接口,判定当前用户是否有权限访问该接口,如果有权限则执行请求操作,否则就拒绝操作。

    70110

    使用 GraphQL 和 Ballerina 操作多个数据源

    在本文中,我们将探讨如何使用 GraphQL 和 Ballerina 将 MySQL 数据库中的数据作为 API 公开出来。...因此,为了满足新的需求,需要调整 REST API。如果使用的是 GraphQL,由于客户端可以指定准确的数据需求,所以只需要在客户端做出更改,服务器端不需要做任何额外的工作。...支持基于模式和类型系统的开发方式 GraphQL 有一个强大的类型系统,可用于定义通过 API 公开出来的数据,所有这些类型都可以使用 GraphQL 模式定义语言(SDL)写到模式中。...这个示例演示了如何使用 Ballerina 实现 GraphQL 服务器,将 MySQL 数据库中的数据以及通过另一个 API 调用获取的数据公开出来。...如果你喜欢使用图形用户界面,可以使用 GraphiQL 或 Altair 等。 所有请求的端点都是 http://localhost:4000/bookstore。

    3.6K20

    架构师该如何为应用选择合适的API

    它定义了可以进行的调用或请求的类型,如何进行调用,应使用的数据格式,遵循的约定等。它还可以提供扩展机制,以便用户可以以各种方式扩展现有功能。在不同程度上。...符合或兼容于这种架构风格(简称为 REST 或 RESTful)的网络服务,允许客户端发出以统一资源标识符访问和操作网络资源的请求,而与预先定义好的无状态操作集一致化。...相对于其它种类的网络服务,例如SOAP服务,则是以本身所定义的操作集,来访问网络上的资源。...在REST API建立在请求方法和端点之间的连接上的情况下,GraphQL API设计为仅使用一个始终通过POST请求查询的端点,通常使用URL yourdomain.com/graphql。...当然,GraphQL也不是没有缺点: 使用GraphQL,如果您需要查找有关列表或记录集合的信息,则处理起来会很棘手。例如,如果您想获取包含其地址的用户列表的详细信息,则它将执行n + 1个查询。

    2.2K20

    Claude Code后端子代理深度实战:从零构建你的服务端架构专家

    前置阅读推荐:如果你还不了解Claude Code子代理的基础概念,强烈建议先阅读我的上一篇文章《Claude Code子代理完全指南:从0到1构建你的AI编程军团》,那篇文章会帮你理解子代理的核心机制和基础操作...1.1 后端开发的复杂性困境 让我用一个真实场景说明问题: // 场景:你让通用Claude帮你写一个用户登录API // ❌ 通用Claude可能给你的代码 app.post('/login', (...四、实战测试:看看后端子代理的威力 测试场景1:构建用户认证系统 输入命令: 创建一个完整的用户注册和登录API,要有安全措施 后端子代理输出: // auth.controller.js - 认证控制器...包含的安全措施、错误处理、日志记录在真实项目中都是必需的。你可以根据需要简化。 Q3:如何让代理生成更简单的代码?...比如你说"创建一个完整的用户系统",前端代理处理UI,后端代理处理API。

    84110
    领券