客户使用其首选的社交,企业或者本地账户标识对应用程序和API进行单一登录访问。 Azure AD B2C 是一种贴牌式身份验证解决方案。...Azure AD B2C 充当 Web 应用程序、移动应用和 API 的中心身份验证机构,使你能够为所有这些应用构建单一登录 (SSO) 解决方案。...可将使用者帐户关联到以下标识类型: 本地标识:将用户名和密码存储在 Azure AD B2C 目录本地。 我们通常将此类标识称为“本地帐户”。...2.7 支持自定义UI 对于用户注册、登录和修改用户资料等常见的功能,AAD B2C 提供了用户流的功能,直白的讲,就是提供了这些模块的UI,并且可以自定义样式。...下一篇,正式开讲创建并且体验AAD B2C注册和登陆用户流。 作者:Allen 版权:转载请在文章明显位置注明作者及出处。如发现错误,欢迎批评指正。
为了快速、大规模地集成应用程序,API 使用协议和/或规范来实现,以定义通过网络传递的消息的语义和语法。这些规范构成了 API 架构。 随着时间的推移,各种不同的 API 架构风格应运而生。...像 Google、Facebook(Apache Thrift)和 Twitch(Twirp)这样的大公司都在内部使用 RPC 高性能变体来执行极高性能、低开销的消息传递。...SOAP 消息由以下部分组成: 每封邮件开头和结尾的信封标签, 包含请求或响应的主体 如果消息必须确定任何细节或额外要求,则需要标头,以及 错误通知,告知在请求处理过程中可能发生的任何错误。...内置错误处理。SOAP API 规范允许返回带有错误代码及其解释的“重试”XML 消息。 一系列安全扩展。SOAP与 WS-Security 协议集成,满足企业级事务质量要求。...虽然 REST 提供了多个 API 版本,但 GraphQL 使用单一的、不断发展的版本,该版本可以持续访问新功能并有助于实现更清洁、更易于维护的服务器代码。 详细的错误消息。
在快速演变的数字化时代,API(应用程序编程接口)已成为现代企业架构的核心组件。本文将深入探讨 API 设计的重要性、实现高效且安全 API 的策略,以及提高生产力的关键工具。...其主要优势包括: 确保一致性:从项目开始就考虑 API,有助于维护整个系统的一致性和整洁性。 促进团队协作:清晰的 API 规范有助于不同团队(如前端、后端和系统集成团队)之间的协作。...二、设计高效且安全的 API 有效的 API 设计需要综合考虑多个方面,包括: 遵循标准和最佳实践:如 REST 或 GraphQL,以确保 API 易于使用和维护。...重视安全性:通过 OAuth、JWT 等机制加强认证和授权。 有效的错误处理:清晰的错误代码和消息有助于快速定位和解决问题。 实现版本控制:合理管理 API 版本,确保向后兼容性和平滑过渡。...通过这种综合方法,组织可以确保其 API 策略满足当前和未来的业务需求。
使用API测试,执行一个回归测试套件只需要1到2小时;而GUI测试下的相同场景需要8到10个小时。此外,API测试提供了更快的测试覆盖率,并且比自动化GUI测试需要更少的代码。...这包括测试代码库中的特定功能,如响应验证、 API 返回任何错误时的错误代码、验证 HTTP 响应代码的测试用例等。...它基本上是为了确保API在正常和峰值条件下的性能都是正常的。 运行时/错误测试: 这种测试类型主要关注API的实际运行,特别是使用API代码库的通用结果。...SOAP 和 REST SOAP (简单对象访问协议) 和REST (表述性状态传递) 是用于Web API的两大类web服务。 SOAP是用于在Web服务实现中交换结构化信息的协议规范。...其目的是提供可扩展性、中立性和独立性。SOAP使用XML来交换信息。 REST是基于Web标准的体系结构,它定义了一组用于创建Web服务的约束。
一旦传输从设备接收到消息,它将被解析并推送到持久消息队列。只有在消息队列确认了相应的消息之后,消息传递才会被设备确认。 3....Rule Engine 订阅来自队列的传入数据提要,并且只在处理消息后才确认该消息。有多种策略可用于控制订单或消息处理以及消息确认标准。详情请参阅提交策略和处理策略。...一旦加载完成,应用程序就开始使用 ThingsBoard Core 提供的 REST API 和 websocket API。...、 CoAP 和 LwM2M 的 api,可用于设备应用程序/固件。...使用 Zookeeper 来处理从单个实体(设备、资产、租户)到特定 ThingsBoard 服务器的请求处理,并确保只有一个服务器在单个时间点处理来自特定设备的数据。
受害者,在这种情况下,应用程序从远程REST API服务消费资源。...在REST架构中,端到端处理意味着一系列潜在的脆弱操作: 在进行 from/to the HTTP 消息映射 和资源 URL (controller 映射)....当超过速率时,至少暂时阻塞API键的访问,并返回429(太多请求)HTTP错误代码。 如果您开始构建新的REST API,请检查具有许多面向安全特性的web服务器。 3....无效的请求可以用来直接攻击API,或者针对API背后的应用程序和系统。将验证器放在应用程序上,并尝试对发送到REST API的请求使用API签名。...在api中同时使用SSL和TLS,特别是在API公开的情况下。 结论 在开发REST API时,您必须从一开始就注意安全性。考虑使用具有许多内置安全特性的现有API框架。
认证的过程可以和应用程序分开并且还可以被其它的服务使用, 但是授权的过程通常是针对某个应用程序, 不同的角色会拥有不同的权限....如果应用部署在云上, 可以使用Azure Active Directory(AAD) 和 Azure Active Directory B2C (Azure AD B2C)....当所支持的浏览器接收到这个header的时候, 浏览器就会阻止任何通过HTTP到指定域名的通信, 会使用HTTPS代替. 同时它也会阻止从浏览提的提示框点击的HTTPS....这种方法使用的是CorsPolicyBuilder 类, 它拥有Fluent API, 可以串接方法调用: ? 第二种方法是使用策略. 在ConfigureServices里配置好命名的策略: ?...这样就可以保护API,避免一些非正常使用的场景,例如网络爬虫或请求太多而导致API的性能严重下降,Dos和DDos。
表的请求头应该遵循微软REST API服务规范。使用这些标头不是必须的,但是如果用到,那么它们必须使用一致。...Accept-Encoding | Gzip, deflate | 在适用时,REST API应支持GZIP和deflate 。对于非常大的资源,服务可以忽略和返回未压缩的数据。...“code”的值是与语言无关的字符串。它的值是该服务定义的错误代码,应该是人类可读的易于理解的。与响应中指定的HTTP错误代码相比,此代码用作错误的更具体的指示。...服务不应该为最终用户本地化“消息”,因为这样做可能使值对于可能正在记录值的应用程序开发人员不可读,并且使值在因特网上可搜索性降低。...“PasswordDoesNotMeetPolicy”错误还包括额外的名称/值对,这些名称/值对允许客户端确定服务器的配置、以编程方式验证用户的输入、或在客户端自己的本地化消息传递中向用户呈现服务器的约束
Microsoft REST API指南 摘要 Microsoft REST API指南作为一种设计原则,鼓励应用程序开发人员通过RESTful HTTP接口访问资源。...REST 实践—— 关于REST的基础知识的入门书。 [*]译者注:上一篇说了,REST 指的是一组架构约束条件和原则。那么满足这些约束条件和原则的应用程序或设计就是 RESTful。 4....分类 作为Microsoft REST API指南的一部分,服务必须符合下面定义的分类法。 5.1 错误 错误,或者更具体地说是服务错误,定义为因客户端向服务传递错误数据,导致服务端拒绝该请求。...示例包括无效凭证、错误的参数、未知的版本ID等。客户端传递错误的或者不合法的数据的情况通常返回 “4XX” 的 HTTP 错误代码。 错误不会影响API的整体可用性。...服务可以通过向“innererror”添加新的错误代码来避免中断服务更改。 “message”键值对的值 必须是错误提示消息,必须是可读且易于理解。它旨在是帮助开发人员,不适合暴露给最终用户。
API测试通常涉及以下实践: 单元测试: 测试单个操作的功能 功能测试: 通过使用一起测试的一组单元测试结果来测试更广泛场景的功能 负载测试: 测试负载下的功能和性能 运行时/错误检测: 监视应用程序以识别问题...,例如异常和资源泄漏 安全测试: 确保API的实施不受外部威胁的影响 UI测试:此测试 是端到端集成测试的一部分,以确保用户界面的各个方面都能按预期运行 互操作性和WS一致性测试: 互操作性和WS一致性测试是一种适用于...资料准确性 HTTP状态码 响应时间 API返回任何错误时的错误代码 授权检查 非功能测试,例如性能测试,安全性测试 用于API测试的工具: 用于API测试的一些工具如下: Postman Katalon...Mockbin Ping API Pyresttest Rest Console RoboHydra Server SOAP Sonar Unirest WebInject API测试和单元测试之间的区别...我们在执行API测试时会遇到的错误类型: 执行API测试时观察到的问题是 压力,性能和安全性问题 功能重复或缺失 可靠性问题 消息传递不当 不兼容的错误处理机制 多线程问题 错误的错误 API测试最佳做法
RESTful API中的异常Exception处理有两个基本要求,需要明确业务意义的错误消息以及hhtp状态码。良好的错误消息能够让API客户端纠正问题。...2. error_code表示REST API特定的错误代码。此字段有助于传递API /业务领域中特定信息。比如类似Oracle错误ORA-12345 3. message字段表示人类可读的错误消息。...5. information_link字段指定有关错误或异常的详细信息的链接。 Spring REST错误处理 Spring和Spring Boot提供了许多错误/异常处理选项。...@ControllerAdvice可以让我们使用和上面完全相同的异常处理技术,但它是应用于整个应用程序,而不仅仅是某个控制器。...这是在使用基于Spring的REST API时的一种便捷方式,因为可以指定ResponseEntity为返回值。
API测试通常涉及以下实践: 单元测试: 测试单个操作的功能 功能测试: 通过使用一起测试的一组单元测试结果来测试更广泛场景的功能 负载测试: 测试负载下的功能和性能 运行时/错误检测: 监视应用程序以识别问题...,例如异常和资源泄漏 安全测试: 确保API的实施不受外部威胁的影响 UI测试:此测试 是端到端集成测试的一部分,以确保用户界面的各个方面都能按预期运行 互操作性和WS一致性测试: 互操作性和WS...资料准确性 HTTP状态码 响应时间 API返回任何错误时的错误代码 授权检查 非功能测试,例如性能测试,安全性测试 用于API测试的工具: 用于API测试的一些工具如下: Postman Katalon...Mockbin Ping API Pyresttest Rest Console RoboHydra Server SOAP Sonar Unirest WebInject API测试和单元测试之间的区别...我们在执行API测试时会遇到的错误类型: 执行API测试时观察到的问题是 压力,性能和安全性问题 功能重复或缺失 可靠性问题 消息传递不当 不兼容的错误处理机制 多线程问题 错误的错误 API测试最佳做法
服务使用的重试策略通常是根据目标服务的性质和要求定制的。 或者对于确定重试是否适当,以及在下一次尝试重试之前要等待多长时间方面,服务的REST接口可能会返回有用的信息。...请记住,从无法控制的资源与服务返回的错误可能会随着时间而演进,可能需要重新访问暂时性故障检测逻辑。 创建服务或组件时,请考虑实施错误代码和消息,以帮助客户端确定是否应重试失败的操作。...使用异常类型及其包含的任何数据,或者使用从服务返回的错误代码与消息,来优化重试的间隔和次数。...测试成功时,应用程序将恢复正常操作,并将请求传递给刚刚恢复的服务。...也可以将用户重定向到应用程序的其他实例、使应用程序性能降级但仍可提供可接受的功能,或者只是将消息返回给用户,指出应用程序暂时不可用。
spring-context-support 模块:支持整合第三方库到Spring应用程序上下文,特别是用于高速缓存(EhCache、JCache)和任务调度(CommonJ、Quartz)的支持。...spring-jdbc 模块:提供了一个JDBC的抽象层,消除了烦琐的JDBC编码和数据库厂商特有的错误代码解析, 用于简化JDBC。...spring-jms模块(Java Messaging Service):指Java消息传递服务,包含用于生产和使用消息的功能。...spring-webmvc 模块:也称为Web-Servlet模块,包含用于web应用程序的Spring MVC和REST Web Services实现。...消息(Messaging) 即 spring-messaging 模块。 spring-messaging 是从 Spring4 开始新加入的一个模块, 该模块提供了对消息传递体系结构和协议的支持。
三、网络 让我们迅速回顾下应用程序之下的网络是什么样的,它可是地位超凡哦:)。当我们从一个服务发“消息”到另一个服务时,我们将其传递到了操作系统的网络堆栈,操作系统会尝试将这条消息放入网络中。...我们可以使用消息主干网(messaging backbone)来提供集中化、控制和应用程序网络功能,如服务发现、负载均衡、重试等等,但还要加入更多内容,比如协议调解、消息转换、消息路由、编排等功能,因为我们觉得如果可以将这些看似同一层面的内容加入到基础设施中...所以尽管意图很好,但是我们发现把核心的应用程序联网功能与业务逻辑有关的功能混到一起不是个好主意。我们最终会遭遇瓶颈。 ? 接下来出现的是REST革命和API优先的思潮。...重叠点如ACL、速率限制、配额和策略执行等可以由API管理层定义,但实际上由service mesh层实施。通过这种方式,我们可以拥有完整的端到端策略和访问控制,并强化南/北流量和东/西流量的弹性。...mesh控制层 • 第四:您具体的业务逻辑;使用service mesh/消息传递等进行优化 七、业务逻辑真的可以 被分离出来吗?
在项目开发中,我们经常会使用REST风格进行API的定义,这篇文章为大家提供10条在使用REST API时的最佳实践。希望能够为你带来灵感和帮助。...这一条最佳实践非常明确,也就是说我们在使用REST API时,代表资源分类的部分,比如上图中的“users”和“customers”,使用users更泛化,不够具体,可能是To C的用户,也可能是To...在个人的团队中,更习惯使用驼峰(camelCase)的形式。 6、使用一致的错误信息 在大多数情况下,仅使用HTTP状态码无法解释出现的错误。为了帮助API使用者,包含一个结构化的JSON错误消息。...这里的JSON错误信息更偏向业务层面。而HTTP状态码更偏向与HTTP交互层面。 响应应包括以下信息: 错误代码:机器可读的错误代码,用于识别特定的错误条件。...错误消息:人类可读的消息,提供对错误的详细解释。 错误上下文:与错误相关的附加信息,例如请求ID、导致错误的请求参数或导致错误的请求中的字段。
这样的设计可以提高您构建符合其客户需求的服务的机会。 如本文后面将会看到的,API定义的性质取决于您使用的是哪种IPC机制。如果您正在使用消息传递,则API由消息通道和消息类型组成。...该服务为缺少的请求属性提供默认值,客户端忽略任何额外的响应属性。使用IPC机制和消息传递格式,使您能够轻松地发展您的API很重要。 但是有时候,您必须对API进行主要的、不兼容的更改。...由于您无法强制客户端立即升级,服务必须支持较旧版本的API一段时间。如果您使用基于HTTP的机制(如REST),则一种方法是将版本号嵌入到URL中。每个服务实例可能同时处理多个版本。...类似地,任何数量的消费者都可以从频道接收消息。有两种渠道,点对点和发布订阅。一个点对点的频道向正在读取频道的消费者提供一个消息。服务使用点对点通道,用于前面描述的一对一交互风格。...两种流行协议是REST和Thrift。我们先来看一下REST。 REST 今天开发REST风格的API是时尚的。 REST是一种(几乎总是使用HTTP)的IPC机制。
POST 从客户端向服务器发送数据,一般用于发送表单中填写的数据等情况下 HEAD 和GET基本相同,不过它只返回HTTP的消息头(message header)的内容,而不是数据的内容。...事实上,上述方法现在常用在RESRful API的设计中,在手机APP和后端服务器交互时常用到。...401.5 ISAPI/CGI应用程序授权失败。 401.7 访问被Web服务器上的URL授权策略拒绝。这个错误代码为IIS 6.0所专用。...403.18 在当前的应用程序池中不能执行所请求的URL。这个错误代码为IIS 6.0所专用。 403.19 不能为这个应用程序池中的客户端执行CGI。这个错误代码为IIS 6.0所专用。...让我们以同样的例子,通过使用 HTML 表单和提交按钮来传递两个值,只不过这次我们使用的不是 GET 方法,而是 POST 方法,如下所示: <form action="/cgi-bin/cpp_get.cgi
如果您正在使用消息传递,那么 API 是由消息通道和消息类型组成。如果您使用的是 HTTP,那么 API 是由 URL、请求和响应格式组成。稍后我们将详细地介绍关于 IDL 方面的内容。...服务使用点对点通道,就是上述的一对一交互方式。 发布订阅通道将每条消息传递给所有已订阅的消费者。服务使用发布订阅通道,就是上述的一对多交互方式。 图 3-4 展示了打车应用程序如何使用发布订阅通道。...他们都力求做到可靠、高性能和可扩展。然而,每个代理的消息传递模型细节上都存在着很大差异。 使用消息传递有很多优点: 将客户端与服务分离 客户端通过向相应的通道发送一条消息来简单地发出一个请求。...您为伸缩和镜像所作的选择会影响到您如何进行进程间通信,这是本章的主题。 我们在 NGINX 方面建议您在实现基于微服务的应用程序时考虑使用四层架构。...NGINX 本质上非常适合四层架构,从客户端层的媒体流,到交付层的负载均衡与缓存、聚合层的高性能和安全的基于 API 的通信的工具,以及服务层中支持灵活管理的短暂服务实例。