Tapee University api.tapee.ac.thTapee API Gateway

RegisterNet integration guide

คู่มือ API อ่านและบันทึกข้อมูล RegisterNet

สำหรับโปรแกรมใหม่ที่ต้องอ่านและบันทึกข้อมูลใน dbo.RegisterNet โดยเฉพาะ

สถานะ: API อ่านและบันทึกเปิดใช้งานแล้วสำหรับ API key ที่ได้รับสิทธิ์ register-net:read หรือ register-net:write ตามงานที่เรียก

Endpoints

ข้อมูลที่อ่านและบันทึก

GET

/api/v1/students/:studentId/register-net

อ่านรายการของนักศึกษาหนึ่งคน โดยต้องระบุ year และ semester คืนครบทั้ง 11 คอลัมน์ตามโครงสร้างตาราง

สิทธิ์ที่ต้องมี: register-net:read

POST

/api/v1/register-net

รับค่าครบทั้ง 11 คอลัมน์ของหนึ่งรายการ คีย์หลัก 4 ช่องต้องมีค่า ส่วนอีก 7 ช่องส่งค่า หรือ null ได้

สิทธิ์ที่ต้องมี: register-net:write

API นี้บันทึกเฉพาะ dbo.RegisterNet ไม่เพิ่มหรือแก้ dbo.REGISTER และไม่เกี่ยวข้องกับ CTMS

Complete row schema

คอลัมน์ที่ API อ่านและรับบันทึก

ชื่อฟิลด์ใน JSON ตรงกับชื่อคอลัมน์ MSSQL ทุกช่อง ทั้งหมดเป็น nvarchar ช่องที่ไม่ใช่คีย์หลักเป็น null ได้

ฟิลด์ความยาวสูงสุดการบันทึก
Year_reg4ต้องมี · คีย์หลัก
Semester1ต้องมี · คีย์หลัก
ID10ต้องมี · คีย์หลัก
Couse10ต้องมี · คีย์หลัก
Cradit1ส่งค่า หรือ null
Section_reg4ส่งค่า หรือ null
Status1ส่งค่า หรือ null
Date_reg30ส่งค่า หรือ null
IpReg20ส่งค่า หรือ null
User_LK10ส่งค่า หรือ null
Reg_RecNo10ส่งค่า หรือ null

Date_reg เป็นข้อความ ไม่ใช่ชนิดวันที่ ตัวอย่างข้อมูลเดิม: 9/7/2569 8:53:34 API จะเก็บค่าที่ผู้เรียกส่งโดยไม่แปลงปฏิทินหรือเติมค่าให้อัตโนมัติ

Request examples

ตัวอย่างวิธีเรียก API

ใช้ค่าแทนข้อมูลจริงและเรียกจากเซิร์ฟเวอร์ที่ได้รับอนุญาต เก็บ API key ไว้ฝั่งเซิร์ฟเวอร์เท่านั้น

อ่านข้อมูล

curl "https://api.tapee.ac.th/api/v1/students/STUDENT_ID/register-net?year=2569&semester=1" \
  -H "x-api-key: YOUR_API_KEY"

บันทึกข้อมูล

curl -X POST "https://api.tapee.ac.th/api/v1/register-net" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "Year_reg": "2569",
    "Semester": "1",
    "ID": "STUDENT_ID",
    "Couse": "COURSE_CODE",
    "Cradit": "3",
    "Section_reg": "T1",
    "Status": "1",
    "Date_reg": "9/7/2569 8:53:34",
    "IpReg": "198.51.100.10",
    "User_LK": "USER_CODE",
    "Reg_RecNo": "REC_NO"
  }'

ตัวอย่าง Status เป็นค่าเพื่อแสดงรูปแบบเท่านั้น ไม่ใช่ค่าเริ่มต้นที่ API กำหนด ช่องที่เป็นค่าว่างได้จะไม่ส่งหรือส่ง null ก็ได้

Response contract

ผลลัพธ์ของ API

200อ่านรายการสำเร็จ
201บันทึกรายการสำเร็จ
400รูปแบบข้อมูลไม่ถูกต้อง
401 / 403ไม่มีคีย์ สิทธิ์ หรือ IP ไม่ได้รับอนุญาต
404ไม่พบ endpoint
409มีรายการตามคีย์เดิมหรือข้อมูลขัดกัน
422ผลการอ่านเกิน 500 รายการ ให้ระบุวิชาเพิ่ม

ผลลัพธ์จะมี requestId สำหรับติดตาม GET จะคืนชื่อฟิลด์เดิมครบทั้ง 11 ช่อง รวม IpReg, User_LK และ Reg_RecNo เฉพาะคีย์ที่ได้รับสิทธิ์อ่าน ค่า Status เป็นค่าดิบ

{
  "requestId": "REQUEST_ID",
  "count": 1,
  "data": [{
    "Year_reg": "2569",
    "Semester": "1",
    "ID": "STUDENT_ID",
    "Couse": "COURSE_CODE",
    "Cradit": "3",
    "Section_reg": "T1",
    "Status": "1",
    "Date_reg": "9/7/2569 8:53:34",
    "IpReg": "198.51.100.10",
    "User_LK": "USER_CODE",
    "Reg_RecNo": "REC_NO"
  }]
}

Important details

ข้อควรรู้ก่อนเชื่อมต่อ

  1. สถานะรายการโปรแกรมผู้เรียกส่งค่า Status เองหรือส่ง null ได้ API ไม่ตั้งค่าเริ่มต้นและไม่แปลความหมาย
  2. รูปแบบข้อมูลตรวจชนิดข้อความ ความยาว และคีย์หลักที่ห้ามว่าง ไม่แปลงวันที่ พ.ศ. หรือ IP ให้อัตโนมัติ
  3. ความสัมพันธ์ข้อมูลAPI ยังไม่ตรวจว่านักศึกษา วิชา หรือกลุ่มเรียนมีอยู่ในตารางอื่น ผู้เรียกต้องตรวจรหัสก่อนส่ง
  4. รายการซ้ำคีย์ Year_reg, Semester, ID, Couse ที่มีอยู่แล้วจะได้รับ 409 โดยไม่แก้ข้อมูลเดิม

ติดต่อผู้ดูแลเพื่อออก API key ให้โปรแกรมใหม่ ระบุชื่อระบบและ IP ที่จะเรียก พร้อมสิทธิ์ register-net:read และ/หรือ register-net:write ตามงานที่ต้องใช้