uwmadison_doit / caos-php-client
用于连接CAOS API并执行请求的PHP客户端
Requires (Dev)
- phing/phing: 2.11.0
- phpdocumentor/phpdocumentor: 2.*
- wsdl2phpgenerator/wsdl2phpgenerator: 3.2.0
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发送请求遵循以下框架。
- 通过声明ChubService类的新实例来初始化ChubService。
- 创建一个关于所需特定数据的请求对象。
- 使用ChubService的内置方法发送请求。
- 重复步骤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交互时主要使用两种类型的类。
-
请求类。此类封装了ChubService方法调用所需的参数。例如,在调用
$ChubService->GetClass()
时,而不是传递唯一的类ID,您将传递包含唯一类ID的\GetClassRequest
对象。许多请求类支持与查询相关的多个字段。 -
响应类。此类由ChubService方法调用返回。这些类是实际请求的数据的封装。例如,一个
\GetSubjectResponse
包含属性$subject
,它是类型\subjectType
。
您可以在JavaDocs中此处和phpdoc页面链接中查看请求和响应类。
课程和学术数据
一旦您使用ChubService方法检索到响应,您只需提取数据即可。课程和学术对象(如学期、课程、导师等)可以在JavaDocs中此处和此处进行查阅,并在此处链接到phpdocs。请记住,使用始终遵循PHPDocs!
即将提供到phpdocs的链接!
贡献
如果您想为该项目开发做出贡献,请参阅CONTRIBUTING。