撰寫 API 的目的有很多,可能是提供一般化的資料操作,這是這篇分享將說明的內容,也可能是依據特定的商業邏輯客製給其他系統使用,這部份留待下一篇說明。
一般化 API,失敗以 HTTP status code 回傳錯誤狀態碼。
客製化 API,失敗回傳 JSON 資料通知錯誤訊息。
一般化API
<get>
目的:取得特定一筆資料,並以JSON格式回傳。
路徑:~/api/entity/get.ashx
參數:
回傳:
成功:JSON 格式資料
失敗(參數錯誤):HTTP status code 400 (BadRequest)
失敗(處理錯誤):HTTP status code 500 (InternalServerError)
程式摘錄:
// 取值
IEntity one = Entity.Get(EntityName, KeyValue);
// 回傳 JSON 格式資料
Response.Write(JsonConvert.SerializeObject(one));
範例:
呼叫連結:/api/entity/get.ashx?EntityName=EmployeeEntity&KeyValue=Kevin
回傳JSON:
{
"EmployeeID": "kevin",
"Password": "Encrypted:tJf3D+R1TRk2kAND5XI2Npmpcs2OISKXV796uqvVFDYXUrV5VVNKQUNzMfkBLsf9O3pKRegxb4rZsIMMKAGlCg==",
"FullName": "鍾春懿",
"DepartmentID": "1",
"Job": 0,
"Email": "kevinjong@gmail.com",
"Level": 10,
"Birthday": "1971-08-31T00:00:00",
"PartTime": false,
"CreateDate": "2013-10-09T10:22:54.38",
"LastModifiedDate": "2013-10-27T09:36:01.38",
"Flag": true
}
<modify>
目的:修改特定一筆資料某欄位的值,並以HTTP status code回應成功與否。
路徑:~/api/entity/modify.ashx
參數:
回傳:
成功:HTTP status code 200 (OK)
失敗(參數錯誤):HTTP status code 400 (BadRequest)
失敗(資料錯誤):HTTP status code 500 (InternalServerError)
程式摘錄:
// 直接修改資料
Result dataResult = Entity.Modify(
EntityName,
KeyValue,
new Any(ColumnName, ColumnValue)
);
範例:
呼叫連結:/api/entity/modify.ashx?EntityName=EmployeeEntity&KeyValue=kevin&ColumnName=FullName&ColumnValue=Kevin%20Jong