digitonic/mdoc-api

此包已被弃用且不再维护。未建议任何替代包。

一个与mDoc API交互的框架无关的PHP SDK。

0.1.0 2019-06-20 12:30 UTC

This package is auto-updated.

Last update: 2022-08-20 20:15:14 UTC


README

Latest Version on Packagist Code Coverage Build Status Code Quality Total Downloads

这是官方的框架无关PHP SDK,用于与mDoc API交互。虽然本质上框架无关,但该包还包含在Laravel中工作的配置。

包目前正在积极开发中,请在生产环境中谨慎使用

安装

您可以通过composer安装此包

composer require digitonic/mdoc-api

用法

框架无关用法

请注意:您必须从您的账户配置文件中获取API密钥

$baseUrl = 'https://mdoc.it/api/1.0/';
$apiKey = 'KxDMt9GNVgu6fJUOG0UjH3d4kjZPTxFiXd5RnPhUD8Qz1Q2esNVIFfqmrqgB';
    // Instantiate a new Guzzle client
    $guzzle = new \GuzzleHttp\Client([
        'base_uri' => $baseUrl,
        'headers' => [
            'Accept' => 'application/json',
            'Content-Type' => 'application/json',
            'Authorization' => 'Bearer ' . $apiKey
        ],
    ]);
    // Instantiate a new mDoc API client with the Guzzle dependency.
    $mdocApi = new \Digitonic\MdocApi\Client($guzzle)

mDoc API客户端现在可以用作与各种端点通信的依赖项。例如,要获取API提供给您的所有团队的列表,可以使用以下命令 -

    $listTeams = new Digitonic\MdocApi\Teams\ListAllTeams($mdocApi);
    $response = $listTeams->send();
    
    print_r($response);

所有返回数据的端点都将返回数据作为 \Illuminate\Support\Collection。这将在搜索响应时提供各种实用方法。有关Laravel集合的更多信息,请参阅 https://laravel.net.cn/docs/5.8/collections。请注意,此包使用时不需要完整的Laravel框架。

Collection {#548 ▼
  #items: array:2 [▼
    "data" => array:3 [▼
      0 => {#597 ▼
        +"uuid": "45bdd45e-59e4-11e9-a656-0a586460061d"
        +"name": "Test Team 1"
        +"owner": "87671060-4f20-11e9-8e5f-0a5864600621"
        +"created_at": "2019-04-08 10:54:16"
        +"updated_at": "2019-04-08 10:54:16"
      }
      1 => {#595 ▼
        +"uuid": "cb886c4c-4f1d-11e9-b27f-0a5864600621"
        +"name": "Test Team 2"
        +"owner": "bea63aea-4f1d-11e9-a775-0a5864600621"
        +"created_at": "2019-03-25 16:48:19"
        +"updated_at": "2019-04-18 11:42:11"
      }
      2 => {#598 ▼
        +"uuid": "77f98560-5b76-11e9-8a31-0a5864600906"
        +"name": "Test Team 3"
        +"owner": "19bca08a-5b72-11e9-a205-0a586460090b"
        +"created_at": "2019-04-10 10:53:18"
        +"updated_at": "2019-04-10 10:53:18"
      }
    ]
    "meta" => {#585 ▼
      +"pagination": {#586 ▼
        +"total": 3
        +"count": 3
        +"per_page": 15
        +"current_page": 1
        +"total_pages": 1
        +"links": []
      }
    }
  ]
}

Laravel用法

在Laravel >5.5中,该包将自动注册服务提供者。在Laravel <5.5中,您必须安装此服务提供者。

// config/app.php
'providers' => [
    ...
    Digitonic\MdocApi\MdocApiServiceProvider::class,
    ...
];

在Laravel >5.5中,该包将自动注册外观。在Laravel <5.5中,您必须手动安装 所有 外观。

// config/app.php
'aliases' => [
    ...
    'ListAllTeams' => Digitonic\MdocApi\Facades\Teams\ListAllTeams::class,
    'CampaignCreate'=> Digitonic\MdocApi\Facades\Campaigns\Create::class
    ...
];

您可以使用以下命令发布此包的配置文件

php artisan vendor:publish --provider="Digitonic\MdocApi\MdocApiServiceProvider"

以下配置文件将在 config/mdoc-api.php 中发布

return [
    'base_url' => env('MDOC_BASE_URL', 'https://mdoc.it/api/1.0/'),
    
    'api_key' => env('MDOC_API_KEY', ''),
];

IoC容器

IoC容器将在调用任何端点时自动为您解决MdocApi依赖项。这意味着您只需在容器中输入端点类型提示即可检索具有所有配置的对象。

// From a constructor
class FooClass {
    public function __construct(Digitonic\MdocApi\Teams\ListAllTeams $listTeams) {
       $listTeams->send();
    }
}

// From a method
class BarClass {
    public function barMethod(Digitonic\MdocApi\Teams\ListAllTeams $listTeams) {
       $listTeams->send();
    }
}

或者您可以直接使用外观

    ListAllTeams:send();

测试

composer test

变更日志

有关最近更改的更多信息,请参阅 CHANGELOG

贡献

有关详细信息,请参阅 CONTRIBUTING

安全

如果您发现任何与安全相关的问题,请通过电子邮件发送至 steven@digitonic.co.uk,而不是使用问题跟踪器。

致谢

许可证

MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件