php 检查当前请求是否适用于Dingo / API。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 检查当前请求是否适用于Dingo / API。相关的知识,希望对你有一定的参考价值。

<?php

if (! function_exists('isDingoApiRequest')) {
    function isDingoApiRequest()
    {
        $requestDomain = trim(request()->root(), '/');

        $prefix = config('api.prefix');

        if (! empty($prefix)) {
            $requestDomain = trim($requestDomain, '/') . '/' . trim($prefix, '/');
        }

        $strict = config('api.strict');

        if ($strict) {
            $strict = (getApiAcceptHeader() == request()->header('Accept')) ? true : false;
        } else {
            $strict = true; // always return true if not strict.
        }

        return (
            starts_with($requestDomain, trim(getApiDomain(), '/'))
            && (true == $strict)
        );
    }
}

if (! function_exists('getApiDomain')) {
    function getApiDomain()
    {
        $uri = config('api.domain');

        if (empty($uri)) {
            $uri = config('app.url');
        }

        $prefix = config('api.prefix');

        if (! empty($prefix)) {
            $uri = trim($uri, '/') . '/' . trim($prefix, '/');
        }

        return $uri . '/';
    }
}

if (! function_exists('getApiAcceptHeader')) {
    function getApiAcceptHeader()
    {
        return 'application/'
                . config('api.standardsTree') . '.'
                . config('api.subtype') . '.'
                . config('api.version') . '+json';
    }
}

以上是关于php 检查当前请求是否适用于Dingo / API。的主要内容,如果未能解决你的问题,请参考以下文章

如果脚本是从控制台或浏览器请求运行的,如何使用 PHP 检查?

php dingo oauth2-server错误

检查适用于 iOS 的可用软件更新

Apache重写规则仅适用于新连接

编写适用于 MVC 和 Web API 请求的过滤器

dingo 配置