nucleardog/ndapi-routing 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

nucleardog/ndapi-routing

最新稳定版本:v1.0.0

Composer 安装命令:

composer require nucleardog/ndapi-routing

包简介

API boilerplate for Laravel - routing

README 文档

README

Part of the ndapi package. Provides discovery of routes and API versioning.

Usage

Registering Routes

Any class that implements the Nucleardog\Api\Contracts\Routing\RegistersRoutes interface will have its routes() method called to allow it to register additional routes dynamically at runtime.

Versioning

The Laravel router is replaced at runtime with one which supports matching on additional properties, namely a version property.

A route matcher is included and enabled by default which matches the version specified in the HTTP Accept header to routes based on the version specified on the routes.

The end result is you can register routes with a version specified:

<?php

Route::version('v1')->get('/test', fn() => 'test v1');
Route::version('v2')->get('/test', fn() => 'test v2');

And the matched route will depend on the version specified in the request:

$ curl -H 'Accept: application/json;version=v1' http://localhost:8000/test
test v1
$ curl -H 'Accept: application/json;version=v2' http://localhost:8000/test
test v2

This works with all the normal constructs you use when defining routes (e.g., Route::version('v1')->group(...);).

Tests

Phpunit is included in a separate composer file and must be explicitly installed:

$ cd tools/phpunit/
$ composer install

Once installed, the tests can be run from the root package folder with:

$ composer test

Legal

Copyright 2024 Adam Pippin hello@adampippin.ca

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this project except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

统计信息

  • 总下载量: 44
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 2
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Apache-2.0
  • 更新时间: 2024-11-25