前幾天分享完了我們會使用到的雲端元件,接下來我們先來設計一下應用程式的 API 規格。
首先盤點一下我們需要的功能
身份驗證
票務資訊
功能整理完後我們就可以來設計一下API 的規格
我們不使用標準的 RESTful API,Request 依照不同的 API 直接給予需要的,Response 則使用統一的規格
{
"ResponseStatus": "string",
"Data": {},
}
ResponseStatus 存放回應的狀態,如果有額外的資料要回傳則存放於 Data
Method: POST
Path: /api/auth/user
Body:
{
"Username": "string",
"Password": "string",
}
{
"ResponseStatus": "string"
}
Method: POST
Path: /api/auth
Body:
{
"Username": "string",
"Password": "string",
}
{
"ResponseStatus": "string"
}
Method: POST
Path: /api/event/list
Body:
{
"PageNumber": "int",
"PageSize": "int",
}
{
"ResponseStatus": "string",
"Data": {
"Rows": [
{
"Id": "int"
"Name": "string",
"Date": "Datetime",
"StartSaleTime": "Datetime",
"EndSaleTime": "Datetime",
"Description": "string",
"Remerk": "string",
}
...
],
"TotalCount": "int"
}
}
Method: GET
Path: /api/event/{id}
Body: Empty
{
"ResponseStatus": "string",
"Data": {
"Id": "int",
"Name": "string",
"Date": "Datetime",
"StartSaleTime": "Datetime",
"EndSaleTime": "Datetime",
"Description": "string",
"Remerk": "string",
"Seat": [
{
"Id": "int",
"Area": "string",
"Name": "string",
"Status": "int",
}
...
]
}
}
Method: POST
Path: /api/ticket
Body:
{
"event_id": "int",
"Seat": "string",
}
{
"ResponseStatus": "string"
}
Method: POST
Path: /api/event
Body:
{
"Name": "string",
"Date": "Datetime",
"StartSaleTime": "Datetime",
"EndSaleTime": "Datetime",
"Description": "string",
"Remerk": "string",
"Seat": [
{
"Area": "string",
"Name": "string",
"Status": "int",
}
...
]
}
{
"ResponseStatus": "string"
}
Method: PUT
Path: /api/event/{id}
Body:
{
"Name": "string",
"Date": "Datetime",
"StartSaleTime": "Datetime",
"EndSaleTime": "Datetime",
"Description": "string",
"Remerk": "string",
"Seat": [
{
"Id": "int",
"Area": "string",
"Name": "string",
"Status": "int",
}
...
]
}
{
"ResponseStatus": "string"
}
目前初步設計 API ,後續實作可能會再依實際情況調整。