neilherbertuk/celcatwebapi

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

Laravel Celcat Web API 集成

dev-master 2019-09-11 15:23 UTC

This package is auto-updated.

Last update: 2021-02-11 18:33:25 UTC


README

Scrutinizer Code Quality Build Status

本包提供对 Celcat Web API 的访问,该 API 在 Celcat Wiki - Web API 页面上有文档说明。本包只在 Celcat 7 上进行了测试,其中 WebAPI 处于测试阶段。

安装

使用 composer 安装此包

$ composer require neilherbertuk/celcatwebapi:dev-master

如果您正在使用 Laravel 5.5+,包自动发现应为您注册 CelcatWebAPIServiceProvider::classCelcatWebAPI 门面。

如果您正在使用 Laravel 5.4 或更低版本,您需要在 config\app.php 文件中注册服务提供者和门面。

服务提供者

将以下内容添加到 config\app.php 文件中的 providers 列表

    neilherbertuk\celcatwebapi\CelcatWebAPIServiceProvider::class,

门面

将以下内容添加到 config\app.php 文件中的 aliases 列表

    'CelcatWebAPI' => neilherbertuk\celcatwebapi\Facades\CelcatWebAPI::class,

配置文件

如果您想编辑配置文件,您需要发布它。所有配置项都可以使用 .env 文件设置。

    $php artisan vendor:publish

配置

可以在您的 config\celcat.php 文件中设置配置,或者通过您的 .env 文件。

为了与 Celcat Web API 通信,必须提供以下内容

ServerAddress - Celcat Web API 的地址,这必须是 https,不应包含尾部斜杠 (/)

    CELCAT_WEB_API_SERVER_ADDRESS=https://:5000/api

APICode - 生成并放入您的 appsettings.production.json 文件中的 API 代码,如 Celcat Wiki - Web API - Security 页面上所述。

    CELCAT_WEB_API_APICODE=123ABCDEfGHijKL4

VerifySSL - 是否验证服务器 SSL 证书

    CELCAT_WEB_API_VERIFY_SSL=true

PEM - 如果在 Celcat Web API 服务器上使用自签名证书,则证书 PEM 的位置。

    CELCAT_WEB_API_PEM=storage/CelcatWebAPI/cert.pem

Debug - 启用详细日志记录

    CELCAT_WEB_API_DEBUG=false

Proxy - 如有需要,则代理服务器地址

   -- Used for both http and https --
    CELCAT_WEB_API_PROXY=http://localproxy:8080
    -- or --
    CELCAT_WEB_API_PROXY_HTTP=http://localproxy:8080
    CELCAT_WEB_API_PROXY_HTTPS=https://localproxy:8080
    
    -- Bypass proxy for addresses seperated by spaces --
    CELCAT_WEB_API_PROXY_BYPASS=*.domain.com

用法

可以通过 CelcatWebAPI Laravel 门面或使用 app()->make('CelcatWebAPI') 来访问此包的所有功能。为了统一和方便,所有使用示例都将通过 Laravel 门面访问包。

可用资源

已实现以下 API 资源

资源名称
房间
学生
学生会员

您可以在上面列出的任何可用资源上使用以下任何方法

获取全部

使用资源的 getAll() 方法将返回所有结果。

    CelcatWebAPI::resource()->getAll();
GetAll 可选:pageSize - 每次请求获取的条目数

默认情况下,getAll()将使用pageSize为1,000,并根据需要执行多次请求以获取所有结果。您可以通过将整数传递给getAll()运算符来更改pageSize,以增加或减少请求的数量。

示例

以下将每次API调用请求100个结果,直到收到所有结果。

CelcatWebAPI::resource()->getAll(100);

Get

在资源上使用get()方法默认将返回前50个结果。

示例

CelcatWebAPI::resource()->get();

结果

array:3 [▼
  "pagination" => array:3 [▼
    "TotalRows" => 200
    "TotalPages" => 4
    "CurrentPage" => 0
  ]
  "data" => array:1 [▼
    0 => array:2 [▼
      "id" => 0
      "name" => "Some Name"
    ]
    1 => array:2 [▼
      "id" => 1
      "name" => "Some Other Name"
    ]
    2 => array:2[...]
    3 => array:2[...]
    ...
    49 => array:2[...]
       
  ]
]
Get 可选:pageSize - 返回的结果数

您可以通过在方法签名中包含一个整数来更改返回的结果数。

示例

以下将返回前100个结果。

CelcatWebAPI::resource()->get(100);

结果

array:3 [▼
  "pagination" => array:3 [▼
    "TotalRows" => 200
    "TotalPages" => 2
    "CurrentPage" => 0
  ]
  "parameters" => array:2 [▼
    "pageSize" => 100
    "page" => 0
  ]
  "data" => array:1 [▼
    0 => array:2 [▼
      "id" => 0
      "name" => "Some Name"
    ]
    1 => array:2 [▼
      "id" => 1
      "name" => "Some Other Name"
    ]
    2 => array:2[...]
    3 => array:2[...]
    ...
    99 => array:2[...]
       
  ]
]
Get 可选:page - 要返回的结果页

如果总结果数超过返回的数量,结果将分页显示。您可以使用Where()运算符请求页面。

示例

以下将返回第2页或结果51 - 100。

CelcatWebAPI::resource()->where(['page' => 2])->get();

结果

array:3 [▼
  "pagination" => array:3 [▼
    "TotalRows" => 200
    "TotalPages" => 4
    "CurrentPage" => 2
  ]
  "parameters" => array:2 [▼
    "page" => 2
  ]
  "data" => array:1 [▼
    50 => array:2 [▼
      "id" => 0
      "name" => "Some Name"
    ]
    1 => array:2 [▼
      "id" => 1
      "name" => "Some Other Name"
    ]
    2 => array:2[...]
    3 => array:2[...]
    ...
    99 => array:2[...]  
  ]
]

以下将返回第3页或结果301 - 400。

CelcatWebAPI::resource()->where(['page' => 3])->get(100);

First

在资源上使用first()方法将返回第一个结果。

CelcatWebAPI::resource()->first();
array:3 [▼
  "pagination" => array:3 [▼
    "TotalRows" => 2103
    "TotalPages" => 2103
    "CurrentPage" => 0
  ]
  "parameters" => array:2 [▼
    "pageSize" => 1
    "page" => 0
  ]
  "data" => array:1 [▼
    0 => array:2 [▼
      "id" => 0
      "name" => "Some Name"
    ]
  ]
]

Where

where运算符允许您定义查询的参数。在getgetAll运算符上设置参数已被移除。

CelcatWebAPI::resource()->where(['uniqueName' => '1234'])->get();
array:3 [▼
  "pagination" => array:3 [▼
    "TotalRows" => 2103
    "TotalPages" => 2103
    "CurrentPage" => 0
  ]
  "parameters" => array:2 [▼
    "pageSize" => 1
    "page" => 0
  ]
  "data" => array:1 [▼
    0 => array:2 [▼
      "id" => 0
      "uniqueName" => "1234"
      "name" => "Some Name"
    ]
  ]
]