iT邦幫忙

DAY 27
9

Kuick Hands on Labs系列 第 27

Kuick Hands on Labs -- 27. API(1)

撰寫 API 的目的有很多,可能是提供一般化的資料操作,這是這篇分享將說明的內容,也可能是依據特定的商業邏輯客製給其他系統使用,這部份留待下一篇說明。
一般化 API,失敗以 HTTP status code 回傳錯誤狀態碼。
客製化 API,失敗回傳 JSON 資料通知錯誤訊息。
一般化API

<get>
目的:取得特定一筆資料,並以JSON格式回傳。
路徑:~/api/entity/get.ashx
參數

  1. EntityName:Entity 名稱
  2. KeyValue:主鍵值

回傳
成功: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
參數

  1. EntityName:Entity 名稱
  2. KeyValue:主鍵值
  3. ColumnName:欄位名稱
  4. ColumnValue:欄位值

回傳
成功: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


上一篇
Kuick Hands on Labs -- 26. 資料統計頁
下一篇
Kuick Hands on Labs -- 28. API(2)
系列文
Kuick Hands on Labs30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0

我要留言

立即登入留言