dimasahmad / dapodik-sdk
非官方Dapodik SDK
Requires
- php: ^7.4
- ext-json: *
- guzzlehttp/guzzle: ^6.5
This package is auto-updated.
Last update: 2021-12-30 03:11:19 UTC
README
⚰️ 已弃用 此项目已停止开发,未来将不再获得任何支持或更新。
非官方 Dapodik SDK,用于访问Dapodik应用中的可用API。
开发者可以通过HTTP客户端和JSON直接访问Dapodik API。如果您想直接访问Dapodik API数据,此SDK为您提供了一些便利
- 更少的代码:您无需处理HTTP逻辑即可开始
- SDK提供了一系列对象,您可以使用它们来访问数据,而无需直接处理JSON,并且具有更可预测和一致的命名
- 额外的错误处理层,更严格的数据类型,以及智能的默认值以帮助您调试应用程序
所有模型都是基于对一所公立学校数据的手动分析创建的。(希望Dapodik应用程序的开发者能够发布文档甚至OpenAPI或其他API元数据标准,以便开发人员更容易访问API,以及所有模型都可以自动生成。)
SDK中提供了两个可用的端点
- WebService https://:5774/WebService/
- REST https://:5774/rest/(仅提供身份验证,模型尚未创建)
库仍然处于扩展开发阶段,将在后续版本中引入重大更改。
安装
可以使用Composer安装此库
composer require dimasahmad/dapodik-sdk
要运行此库,必须安装PHP >=7.4。目前没有计划支持旧版本。
开始
WebService端点
在您能够访问WebService端点之前,您必须通过您学校的Dapodik应用中的设置 -> WebService页面注册您的应用程序。请确保设置IP与将要连接到Dapodik服务器的计算机的IP相匹配。
$dapodik = new \DimasAhmad\Dapodik\SDK\Auth\WebService(); $dapodik->setAccessToken("accessToken"); // Token yang didapatkan saat registrasi aplikasi $dapodik->setNpsn("12345678"); // NPSN server Dapodik yang akan diakses $sekolah = new \DimasAhmad\Dapodik\SDK\Model\WebService\Sekolah($dapodik); echo $sekolah->getNama();
REST端点
使用操作员账户作为身份验证参数。
$dapodik = new \DimasAhmad\Dapodik\SDK\Auth\Rest(); $dapodik->setUsername("user@example.com"); $dapodik->setPassword("password"); $dapodik->login();
REST端点的模型实现仍在开发中(手动分析耗时且费力 😩)。
您可以使用通过Rest->client->request($method, $uri)提供的可用方法进行请求,并自行处理从库中获得的JSON响应。
$response = $dapodik->client->request("GET", "/rest/Sekolah"); $sekolah = json_decode($response->getBody()->__toString())->rows[0]; echo $sekolah->nama;
开发
调试
您可以使用Fiddler或Charles Proxy等代理库进行调试,以查看当它们通过网络时请求和响应。在Auth对象上使用setProxyPort
,如下所示
$dapodik->setProxyPort("localhost:8888");
然后打开您的客户端 代理,以查看使用此库发送的请求和响应。
当这个库没有达到您的预期结果时,这将非常有帮助,以确定API或SDK是否存在bug。因此,当您尝试提交问题进行故障排除时,可能会被要求提供这些信息。
测试
单元测试尚未实施,但将在下一个开发里程碑中成为高优先级任务。
除了单元测试之外,还将进行功能测试。
文档
待办事项
- WebService端点 (/WebService)
- 使用bearer token进行身份验证
- 将每个property映射到模型
- /getSekolah
- /getGtk
- /getPesertaDidik
- /getPengguna
- /getRombonganBelajar
- Rest端点 (/rest)
- 使用表单登录和cookies进行身份验证
- 为每个API call映射模型
- 为数据参考(例如:性别、宗教、学校状态、科目等)提供枚举模型,以便应用程序知道一个property上可用的数据值集合
- 为每个可用方法提供文档
- 单元测试
- 功能测试
- 持续集成
- 实现proxy以简化使用HTTP调试应用程序(如Fiddler或Charles Proxy)进行debug request和response
贡献
我接受对该库的贡献。请查阅CONTRIBUTING.md以了解在开始贡献之前的准备工作。
许可证
版权(c)2020 Dimas Ahmad Eka Putra。版权所有。
本库使用MIT许可证。有关更多详细信息,请参阅LICENCE文件。