CMRU API มุ่งเน้นการทดลองสร้างไลบรารีสำหรับสื่อสารกับบริการที่เกี่ยวข้องกับมหาวิทยาลัยราชภัฏเชียงใหม่ โดยมุ่งหวังให้ผู้สนใจด้านโปรแกรมมิ่งได้ศึกษาวิธีเรียกใช้งาน API, การจัดการ Session, และการแปลงข้อมูล HTML เป็นโครงสร้าง json ที่นำไปใช้ต่อได้ง่าย
โปรเจ็กต์งานอดิเรกที่พัฒนาขึ้นเพื่อสำรวจการเชื่อมต่อกับบริการที่เกี่ยวข้องกับ CMRU โดยไม่มีความเกี่ยวข้องทางการกับหน่วยงานหรือบุคลากรของมหาวิทยาลัย
เลือกติดตั้งแพ็กเกจด้วยตัวจัดการที่ถนัด:
bun add @cmru-comsci-66/cmru-api
npm install @cmru-comsci-66/cmru-api
pnpm add @cmru-comsci-66/cmru-api
yarn add @cmru-comsci-66/cmru-api
# หรือ @cmru-computer-science-66/cmru-api
ตัวอย่างการใช้งานพร้อม type inference:
import { ApiClient, ApiServer, type ParsedScheduleData } from "@cmru-comsci-66/cmru-api";
const client = new ApiClient(ApiServer.BUS);
const busApi = client.api();
await busApi.login("66143000", "password");
const schedule: ParsedScheduleData = await busApi.getSchedule();
console.log(schedule.reservations.length);
TypeScript จะได้รับไฟล์ definition โดยอัตโนมัติจากแพ็กเกจ ไม่จำเป็นต้องติดตั้งไลบรารี @types เสริม
ตัวอย่างสำหรับ Node.js 20+ หรือ Bun ที่รองรับ ES Module:
import { ApiClient, ApiServer } from "@cmru-comsci-66/cmru-api";
const apiClient = new ApiClient(ApiServer.BUS);
const busApi = apiClient.api();
await busApi.login("66143000", "password");
const schedule = await busApi.getSchedule();
console.log(schedule);
หากต้องการใช้ในสภาพแวดล้อม CommonJS ให้เรียกใช้
const { ApiClient, ApiServer } = require("@cmru-comsci-66/cmru-api");
สามารถอ่านรายละเอียดของโมดูล ฟังก์ชัน และชนิดข้อมูลทั้งหมดได้ที่ เว็บไซต์เอกสารประกอบ
>0.2.0>0.3.2>0.5.0>0.2.0>0.5.0>0.5.0>0.5.0>0.5.0>0.5.0รัน API server
# ใช้ bunx (แนะนำ)
bunx @cmru-comsci-66/cmru-api serve
# หรือใช้ npx
npx @cmru-comsci-66/cmru-api serve
# กำหนด port และ host
PORT=8080 HOST=0.0.0.0 bunx @cmru-comsci-66/cmru-api serve
Server จะทำงานที่ http://localhost:3000 พร้อม REST API endpoints:
ยินดีรับคำแนะนำ ปรับปรุง รายงานบั๊ก และ Pull Request สำหรับการแก้ไขบั๊กหรือเพิ่มฟีเจอร์ โดยทุกข้อเสนอควรระบุชัดเจนว่าเป็นการทดลองหรือเพื่อการเรียนรู้ และต้องไม่ละเมิดข้อตกลงหรือทรัพยากรของ CMRU สามารถแจ้งปัญหาได้ที่ GitHub Issues
โปรเจ็กต์นี้เผยแพร่ภายใต้เงื่อนไขที่ระบุในไฟล์ LICENSE ผู้ใช้งานควรอ่านรายละเอียดก่อนนำไปใช้ในบริบทอื่น