加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – Laravel RESTful API版本设计

发布时间:2020-12-14 19:41:26 所属栏目:大数据 来源:网络整理
导读:我是Laravel的新手(4和5),最近我正在使用一个RESTful API. 为了允许多个版本的API,我使用URL来确定版本. 我阅读了这篇文章,似乎大多数人遵循这种方法: How to organize different versioned REST API controllers in Laravel 4? 文件夹结构: /app /control
我是Laravel的新手(4和5),最近我正在使用一个RESTful API.
为了允许多个版本的API,我使用URL来确定版本.

我阅读了这篇文章,似乎大多数人遵循这种方法:
How to organize different versioned REST API controllers in Laravel 4?

文件夹结构:

/app
  /controllers
    /Api
      /v1
        /UserController.php
      /v2
        /UserController.php

在UserController.php文件中,我相应地设置命名空间:

namespace Apiv1;

要么

namespace Apiv2;

和路线:

Route::group(['prefix' => 'api/v1'],function () {
  Route::get('user','Apiv1UserController@index');
  Route::get('user/{id}','Apiv1UserController@show');
});

Route::group(['prefix' => 'api/v2'],'Apiv2UserController@index');
  Route::get('user/{id}','Apiv2UserController@show');
});

URL将是简单的http://…./api/v1版本1和http://…./api/v2版本.这是直接的.

我的问题是:
如果我正在构建api的小型升级,说v1.1,如何组织我的文件夹结构?
我的想法是这样的,它应该还是罚款,因为点是文件夹的有效名称?

/app
  /controllers
    /Api
      /v1
        /UserController.php
      /v1.1
        /UserController.php
      /v1.2
        /UserController.php
      /v2
        /UserController.php

另外,我该怎么写命名空间?这不是这样的命名空间

namespace Apiv1.1;

有可以参考使用“点”的命名约定吗?

注意:我不想将其称为版本v2,因为这不是一个主要的升级.

IMO,小型升级不应该发布对API的更改.所以我的建议是坚持使用整数版本的API.增强功能没有问题,但是现有的端点应该照常运行.

这样您的API版本将与路由前缀和命名空间以及测试同步.

>从v1.0开始
>你做一些改变(例如git-tag v1.1),这不会给你的api带来破坏性的变化.开发人员是否需要在代码中执行其他任何操作?不,那里没有.所以你可以安全地让URI-Prefix保持在V1,这样开发人员调用你的api就不需要改变所有的代码,这就是调用你的API(因此自动受益于新的小版本).也许你只是修复了一个错误,这使得他们的代码的行为与预期的一样,或者你发布了一个新功能,它不会破坏现有的功能调用.
>您的应用增长,您发布新的重新设计的API版本,其中包含突破性更改.在这种情况下,您将发布一个新的API-URI前缀(V2).

请注意,您当然可以在内部跟踪次要版本(例如SCM),但是开发人员不需要更改所有的API通话,只是为了从您发布的那个小错误中受益.无论如何,当然,如果您通知客户更新的次要版本及其提供的修补程序或增强功能(博客,通讯,…)

让我补充一下,我不知道使用小的API-URL-prefix的RESTful API,所以我猜这是一个很常见的做法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读