Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js REST api最佳实践版本控制,无需重复代码_Node.js_Api_Rest_Version_Nodes - Fatal编程技术网

Node.js REST api最佳实践版本控制,无需重复代码

Node.js REST api最佳实践版本控制,无需重复代码,node.js,api,rest,version,nodes,Node.js,Api,Rest,Version,Nodes,我正在自己的节点中编写一个api,用于学习和实践。我正在努力研究如何实现版本控制。 示例: 来自v1的路由 api/v1/products调用v1/ProductController api/v1/客户端调用v1/ClientController v2中的路线-唯一发生更改的路线(代码) api/v2/客户端调用v2/ClientController 在不将代码从v1复制到v2的情况下管理v2行为的最佳实践是什么。我的想法/解决方案是: api/v2/products->指向->“v1/Prod

我正在自己的节点中编写一个api,用于学习和实践。我正在努力研究如何实现版本控制。
示例:
来自v1的路由

api/v1/products调用v1/ProductController
api/v1/客户端调用v1/ClientController

v2中的路线-唯一发生更改的路线(代码)

api/v2/客户端调用v2/ClientController

在不将代码从v1复制到v2的情况下管理v2行为的最佳实践是什么。我的想法/解决方案是:

api/v2/products->指向->“v1/ProductController”或“api/v1/products”

是这样吗

通过这种方式,我可以管理我的移动应用程序的默认版本。例如,移动应用程序版本2始终使用api/v2。 它不需要根据动作的不同指向v1或v2


就性能而言,在Node中,如果我也在v2上注册v1的所有路由,这会占用更多的内存或cpu使用吗?

如果您发布api的版本2,并且版本1没有任何更改,但您希望您的客户端应用程序使用最新版本,那么您的后端应该简单地将端点路由到版本1正在使用的相同代码。我用Wirespec做这个。Wirespec是一项免费的在线服务,它允许您在可定制的端点创建API并提供响应。它支持为端点定义多个版本。您甚至可以按照前面描述的方式将多个端点连接到同一个api。Wirespec的api响应生成服务在Node.js上运行

拜访


您可以使用此服务来了解如何创建支持多个版本的端点。还有一个好处是你可以过滤你的A{PIs按版本号排列。

如果您发布了api的第2版,但与第1版相比没有任何变化,但您希望客户端应用程序使用最新版本,那么您的后端应该只将端点路由到版本1使用的相同代码。我使用Wirespec来完成此操作。Wirespec是一个免费的在线服务,允许您创建api并交付r在可自定义的端点上响应。它支持您为端点定义多个版本。您甚至可以按照前面描述的方式将多个端点连接到同一api。Wirespec的api响应生成服务在Node.js上运行

拜访

您可以使用此服务来体验如何创建支持多个版本的端点。另外,您还可以通过版本号筛选a{pi