uwmadison_doit/caos-php-client

用于连接CAOS API并执行请求的PHP客户端

1.5.1 2016-09-14 16:11 UTC

This package is not auto-updated.

Last update: 2024-09-28 18:26:30 UTC


README

CAOS

CAOS代表课程和学术运营数据存储(Curricular and Academic Operational Data Store)。它用于连接PeopleSoft数据库,以检索有关UW-Madison的各种课程和学术数据。使用CAOS的凭据以服务为基础提供。如果您想使用此客户端,您必须首先在上述网站上为您的特定项目请求凭据。

CAOS文档可以在这里找到。请注意,这里找到的文档是CAOS的最新版本。如果您需要参考早期文档,请点击“上一版本”标签。

有关更多文档,请参阅下面的“文档”部分。

如何包含caos-php-client

客户端的版本与CAOS API的版本相关联。具体来说,主版本号和次版本号与CAOS API相匹配。例如,版本1.5.x对应于使用CAOS API 1.5版本的客户端,而版本1.3.x对应于使用CAOS API 1.3版本的客户端。

使用composer安装

如果您使用composer来包含依赖项,您可以按照以下说明操作。

composer.json文件下的依赖项部分包含uwmadison_doit/caos-php-client。如果您需要帮助,请参阅composer.json指南

Composer将在您放置composer.json文件的任何位置创建一个名为/vendor的目录。在这个目录下,您可以找到客户端的源代码以及autoload.php文件。

在文件开头放置此行,然后您就可以使用客户端了!

require 'path/to/vendor/autoload.php';

手动安装

您可以通过使用以下命令将代码直接从GitHub安装到您的项目中

git clone https://github.com/UW-Madison-DoIT/caos-php-client --branch <tag_name> --single-branch

一旦安装了源代码,您只需在/caos-php-client/src/main下要求autoload.php文件即可。这可以通过在文件开头放置以下代码行来完成。

require 'path/to/caos-php-client/src/main/autoload.php';

如何使用客户端发送请求

所有请求和响应都由继承自php的SoapClient的ChubService类处理。要使用SoapClient,您必须使用选项--enable-soap配置php或包含extension=php_soap.dll在您的php.ini文件中。

使用CAOS API发送请求遵循以下框架。

  1. 通过声明ChubService类的新实例来初始化ChubService。
  2. 创建一个关于所需特定数据的请求对象。
  3. 使用ChubService的内置方法发送请求。
  4. 重复步骤2和3以获取所需的所有数据。

以下是CAOS API 1.5版本的示例代码。

// acquire an instance from ChubServiceFactory
$ChubService = edu\wisc\services\caos\ChubServiceFactory::getInstance('myusername', 'mypassword');

// Request the present term
$request = new edu\wisc\services\caos\GetPresentTermRequest($courseCareerCode);
$reponse = $ChubService->GetPresentTerm($request);
// Code here to extract data from response
unlink($request, $response);

// Request a class (ChubService is already initialized so it need not be declared again)
$request = new edu\wisc\services\caos\GetClassRequest($classID);
$response = $ChubService->GetClass($request);
// Code here to extract data from response
unlink($request, $response);

// Request a list of advisors
$request = new edu\wisc\services\caos\GetAdvisorsRequest($personQuery, $advisingDataOptions, $attributes);
$reponse = $ChubService->GetAdvisors($request);
// Code here to extract data from response
unlink($request, $response);

文档

CAOS API客户端所使用的代码是从wsdl文件自动生成的,该文件几乎没有文档。最好是将JavaDocs中方法和类的描述与PHPDocs中的使用情况进行比较。以下列出的文档都是针对CAOS API 1.5版本的。对于早期版本,请参阅此处并点击“先前版本”选项卡。

请求和响应类

从上面的示例代码中可以得知,与CAOS服务的所有交互都必须通过ChubService类的实例化来启动。可以在JavaDocs中找到ChubService可以调用的所有函数名,并在PHPDocs中的phpdoc页面链接。JavaDocs中的函数名是正确的,但是参数和返回值是错误的。

与CAOS API交互时主要使用两种类型的类。

  1. 请求类。此类封装了ChubService方法调用所需的参数。例如,在调用$ChubService->GetClass()时,而不是传递唯一的类ID,您将传递包含唯一类ID的\GetClassRequest对象。许多请求类支持与查询相关的多个字段。

  2. 响应类。此类由ChubService方法调用返回。这些类是实际请求的数据的封装。例如,一个\GetSubjectResponse包含属性$subject,它是类型\subjectType

您可以在JavaDocs中此处phpdoc页面链接中查看请求和响应类。

课程和学术数据

一旦您使用ChubService方法检索到响应,您只需提取数据即可。课程和学术对象(如学期、课程、导师等)可以在JavaDocs中此处此处进行查阅,并在此处链接到phpdocs。请记住,使用始终遵循PHPDocs!

即将提供到phpdocs的链接!

贡献

如果您想为该项目开发做出贡献,请参阅CONTRIBUTING