webpress/core

此包的最新版本(3.1.87)没有可用的许可信息。

Webpress 核心模块

此包的官方仓库似乎已不存在,因此该包已被冻结。

3.1.87 2021-11-17 01:58 UTC

README

此包包含其他 3 个包,分别是 dingo/apitymon/jwt-authprettus/l5-repository,它们提供了强大的代码库来构建 APIs。

安装

Composer

要将此包包含到您的项目中,请运行以下命令。

composer require vicoders/core

配置和迁移

运行以下命令以发布配置和迁移文件。

php artisan vendor:publish --provider="Dingo\Api\Provider\LaravelServiceProvider"
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"
php artisan vendor:publish --provider "Prettus\Repository\Providers\RepositoryServiceProvider"

环境

在 .env 文件中,我们需要一些配置。

API_PREFIX=api
API_VERSION=v1
API_NAME="Your API Name"
API_DEBUG=false

在 .env 文件中生成 JWT_SECRET。

php artisan jwt:secret

APIs

Vicoders/Core 包提供了一个基础的 VCComponent\Laravel\Vicoders\Core\Controllers\ApiController 和上传文件的 API 在 VCComponent\Laravel\Vicoders\Core\Controllers\FileController

{url}/api/file/upload

上传文件 API 使用 POST HTTP 方法。

修改 config/filesystems.php 以使用 API

'disks' => [
		'local' => [
				'driver' => 'local',
				'root' => public_path(),
		],

要使用此 API,请在请求中添加以下参数

头部

alt text

请求

alt text

文件验证器

您可以使用自己的 FileValidator。只需在您的验证器中实现 FileValidatorInterface 并在 AppServiceProvider 中绑定它。

<?php

namespace App\Providers;

use App\Validators\FileValidator;
use Illuminate\Support\ServiceProvider;
use VCComponent\Laravel\Vicoders\Core\Contracts\FileValidatorInterface;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        $this->app->bind(FileValidatorInterface::class, FileValidator::class);
    }
}
<?php

namespace App\Validators;

use VCComponent\Laravel\Vicoders\Core\Contracts\FileValidatorInterface;
use VCComponent\Laravel\Vicoders\Core\Validators\AbstractValidator;

class FileValidator extends AbstractValidator implements FileValidatorInterface
{

    protected $rules = [
        'RULE_CREATE' => [
            'file'        => ['required', 'mimes:csv'],
            'upload_path' => ['required', 'regex:/[a-z]*/'],
        ],
    ];
}

异常

Vicoders/Core 包提供了一些常用的 Exception

VCComponent\Laravel\Vicoders\Core\Exceptions\NotFoundException::class,
VCComponent\Laravel\Vicoders\Core\Exceptions\PermissionDeniedException::class,

您可以在您的 Controller 中使用这些 Exception

use VCComponent\Laravel\Vicoders\Core\Exceptions\NotFoundException;
use VCComponent\Laravel\Vicoders\Core\Controllers\ApiController;

class UserController extends ApiController
{
	public function show(Request $request, $id)
	{
		$user = $this->entity->find($id);
		if (!$user) {
			throw new NotFoundException('User');
		}
	}
}

验证器

Vicoders/Core 包提供了一些 AbstractValidator,您可以使用它来创建您的 Validator

use VCComponent\Laravel\Vicoders\Core\Validators\AbstractValidator;

class PostValidator extends AbstractValidator