Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在分布式REST服务架构中生成HATEOAS链接?

如何在分布式REST服务架构中生成HATEOAS链接?
EN

Stack Overflow用户
提问于 2018-09-27 20:47:38
回答 1查看 277关注 0票数 3

我是REST新手,现在正在做大量研究,考虑将内部单片服务体系结构迁移到更精简和更分布式的东西。我在思考如何为分布式微服务系统中的资源生成HATEOAS链接时遇到了一些麻烦。我通常理解为什么不应该将关系本身存储在数据库中,但另一种选择是在代码中生成它们。

如果微服务的主要好处之一是允许不同的团队独立工作来改进他们的服务和API,那么一个团队如何可靠地生成到另一个团队的服务资源的链接?这仅仅是关注API中的变化,然后适当地对它们进行版本控制,以便其他团队可以随时更新他们的资源链接吗?

如果是这样,那么硬编码链接真的是最好的吗?在我看来,对于如何做到这一点,一定有某种最佳实践,我只是刚刚接触这一领域,肯定找不到正确的搜索词。

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2018-09-27 21:44:57

我还没有机会使用HATEOAS实现REST API,但我有一些时间考虑如何实现它。

我想到的最有趣的方式是为REST实现一种"DNS服务器“,它基本上会构造系统上可用的不同REST的urls。

这个"DNS“类型的服务将公开如下操作:

获取/apis/{resourceTypeIdentifier}/{resourceIdentifier}

该url又将返回可以消耗该资源的url。

示例:

您的API (假设是一个offer API)需要返回对其域外资源的引用(假设是一个id为001的客户)。为了获得外部资源的链接,它将调用DNS api,如下所示:

GET /apis/offer/001

这将返回一个url,人们可以从该url获取关于该资源的其余信息(例如,https://www.example.org/myofferapi/v3/offers/001https://www.example.org/myofferapi/v3/offers?offerId=001)。只要以通用方式实现该DNS的api,该服务就可以根据需要返回复杂的url。

然后,API所有者将负责使用"DNS“API所需的信息来更新"DNS”数据库,以便构建urls。这将承担跟踪和更新每个消费者上的url的责任,而不是将其单独放在服务提供商身上。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52544905

复制
相关文章
架构之:REST和HATEOAS
我们知道REST是一种架构方式,它只是指定了六种需要遵循的基本原则,但是它指定的原则都比较宽泛,我们需要一种更加具象的约束条件来指导我们的编码。这就是HATEOAS。
程序那些事
2021/07/26
6950
使用 Spring HATEOAS 开发 REST 服务
原文地址:http://www.ibm.com/developerworks/cn/java/j-lo-SpringHATEOAS/
Gaussic
2018/08/17
1.3K0
【转】使用 Spring HATEOAS 开发 REST 服务原文
绝大多数开发人员对于 REST 这个词都并不陌生。自从 2000 年 Roy Fielding 在其博士论文中创造出来这个词之后,REST 架构风格就很快地流行起来,已经成为了构建 Web 服务时应该遵循的事实标准。很多 Web 服务和 API 都宣称满足了 REST 架构风格的要求,即所谓的“RESTful”服务。不过就如同其他很多流行的概念一样,不少人对于 REST 的含义还是存在或多或少的种种误解。REST 在某些时候被当成了一种营销的手段。不少所谓的“RESTful” Web 服务或 API 实际上并不满足 REST 架构风格的要求。这其中的部分原因在于 REST 的含义比较复杂,包含很多不同方面的内容。本文首先对 REST 架构做一个简单的说明以澄清某些误解。
代码咖啡
2018/08/28
1.1K0
如何在kubernetes中实现分布式可扩展的WebSocket服务架构
How to implement a distributed and auto-scalable WebSocket server architecture on Kubernetes一文中虽然解决是WebSocket长连接问题,但可以为其他长连接负载均衡场景提供参考价值
charlieroro
2023/09/14
9980
如何在kubernetes中实现分布式可扩展的WebSocket服务架构
架构之:REST和RESTful
近几年微服务是如火如荼的在发展,而微服务之间的调用和渐渐的从RPC调用转移到了HTTP调用。于是经常听到有些同事说我们提供微服务并且暴露RESTful接口给别的系统,但是什么是RESTful接口呢?它和REST有什么关系呢? 别急,本文将会带你一探究竟。
程序那些事
2021/07/15
4940
通过案例读懂 RESTful 架构风格
REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。
搜云库技术团队
2019/10/17
9910
架构之:REST和RESTful
近几年微服务是如火如荼的在发展,而微服务之间的调用和渐渐的从RPC调用转移到了HTTP调用。于是经常听到有些同事说我们提供微服务并且暴露RESTful接口给别的系统,但是什么是RESTful接口呢?它和REST有什么关系呢? 别急,本文将会带你一探究竟。
程序那些事
2021/07/15
9300
We Do Sleep At Night, We Do REST Right
前言 笔者在上一篇文章中提过,任何一种非“强制性”约束同时也没有“标杆”工具支持的开发风格或协议,最后都会在不同的程序员手中得到不同的诠释,微服务是如此,DDD 是如此,笔者把它称为技术思想上的“康威定律”。不出意外的,REST 同样难逃此劫。光是在学习和收集资料的过程中,笔者就已经见过不下十多篇此类理解,甚至于在 url 中使用短划线或下划线连接单词也是众口难调。 尽管这只是小事。 微软也发布过关于如何设计 REST API 的开发指南,但是不幸的是,REST 的创始人 Roy Fielding 认为微
潘成涛
2018/07/09
9500
Spring技术内幕:设计理念和整体架构概述
程序员都很崇拜技术大神,很大一部分是因为他们发现和解决问题的能力,特别是线上出现紧急问题时,总是能够快速定位和解决。 一方面,他们有深厚的技术基础,对应用的技术知其所以然,另一方面,在采坑的过程中不断总结,积累了很多经验。 相信大家都使用过Spring,有些人了解它的核心:IOC和AOP,但只是了解它们的基本概念、使用了反射和动态代理,关于如何管理对象、代理的具体实现了解的比较浅。 有些人使用Spring MVC,使用Spring集成数据库、事务、消息队列以简化操作,但对集成的具体设计思路和实现了解的也比较
二十三年蝉
2018/07/05
2K0
怎样编写好的 API?
本文首先阐述了 RESTful 风格 API 的基础理论知识以及 Richardson 成熟度模型,随后讨论了好的 API 应该具有哪些特征,最后对流行的 API 实现方式,即 GraphQL 和 RESTful,进行了对比。
逆锋起笔
2021/11/15
6240
RESTful API 设计最佳实践
Web API 近几年变得越来越火,而简洁的 API 设计在多后端系统交互应用中也变得尤为重要。通常,会使用 RESTful API 来作为我们的 Web API 。本文介绍了几种简洁 RESTful API 设计的最佳实践。
用户7657330
2020/08/14
6550
用ASP.NET Core 2.1 建立规范的 REST API -- HATEOAS
本文所需的一些预备知识可以看这里: http://www.cnblogs.com/cgzl/p/9010978.html 和 http://www.cnblogs.com/cgzl/p/9019314.html
solenovex
2018/08/01
8710
用ASP.NET Core 2.1 建立规范的 REST API -- HATEOAS
SpringBoot HATEOAS用法简介
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
SmileNicky
2019/10/28
9150
你了解过系统集成服务集成交互技术:REST服务集成——RESTAPI吗
REST服务集成微服务架构倾向于使用轻量级的通信机制(通常是HTTP提供的API调用方式)实现服务之间的交互,基于API优先的服务契约管理成为微服务架构的重要原则之一。REST在HTTP的基础上提供了一系列架构约束和原则,帮助微服务更好地实现通信和集成。
愿天堂没有BUG
2022/10/28
1.5K0
你了解过系统集成服务集成交互技术:REST服务集成——RESTAPI吗
分布式系统核心:REST风格的架构,REST成熟度模型及REST API管理
正确、完整地使用REST是困难的,关键在于RoyFielding所定义的REST只是一种架构风格,它并不是规范,所以也就缺乏可以直接参考的依据。好在Leonard Richardson补充了这方面的不足。
IT大咖说
2021/06/15
9150
分布式系统核心:REST风格的架构,REST成熟度模型及REST API管理
如何在Linux中删除软链接
符号链接(也称为软链接或符号链接)在 Linux 中是一种特殊类型的文件,可用作另一个文件的快捷方式。 你可以使用 ln 命令创建软链接。但是怎么删除呢? 在 Linux 中没有专门用于删除符号链接的特殊命令。你可以使用 rm 命令,该命令也用于删除文件和目录。 rm symbolic_link_name 你也可以在此处使用取消链接命令。不要用它的名字。它不仅用于删除链接;它也可以删除文件。 unlink symbolic_link_name 使用 rm 命令删除符号链接 你所要做的就是为命令提供链接路
入门笔记
2022/11/14
13.3K1
如何在Linux中删除软链接
[解读REST] 5.Web的需求 & 推导REST
衔接上文[解读REST] 4.基于网络应用的架构风格,上文总结了一些适用于基于网络应用的架构风格,以及其评估结果。在前文的基础上,本文介绍一下Web架构的需求,以及在对Web的关键协议进行设计和改进的过程中遇到的问题;以及在对基于网络应用的架构风格进行评估的过程中的领悟;结合Web的需求进而推导出REST这种架构风格,随后使用REST来指导Web架构的设计和改进工作。 1 Web的需求 在本系列博客的第一篇博客[解读REST] 1.REST的起源中,Web之父Berners-Lee在世界上第一个网站写下的第
blackheart
2018/01/19
8000
[解读REST] 5.Web的需求 & 推导REST
如何在微服务架构中实现安全性?
导读:网络安全已成为每个企业都面临的关键问题。几乎每天都有关于黑客如何窃取公司数据的头条新闻。为了开发安全的软件并远离头条新闻,企业需要解决各种安全问题,包括硬件的物理安全性、传输和静态数据加密、身份验证、访问授权以及修补软件漏洞的策略,等等。无论你使用的是单体还是微服务架构,大多数问题都是相同的。本文重点介绍微服务架构如何影响应用程序级别的安全性。
Bug开发工程师
2019/05/31
4.9K0
RESTful API 规范 v1.0
本文介绍了RESTful API规范及其在开发中的应用,强调了其设计原则、通信协议、状态码、HATEOAS等方面的重要性。同时,通过举例说明,让读者更好地理解和掌握这些概念和技术。
IMWeb前端团队
2018/01/08
1.2K0
点击加载更多

相似问题

HATEOAS (REST-架构)的实际示例

51

需要帮助为REST客户端生成链接(HATEOAS)

10

Spring Data Rest安全HATEOAS链接

20

REST/HATEOAS - HAL链接中的可用方法

22

Spring REST HATEOAS

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文