-
Notifications
You must be signed in to change notification settings - Fork 0
API
domanthan edited this page Apr 26, 2017
·
46 revisions
- Sign up
- Sign in
- Add content to gallery
- Add content for event logo
- Add content for island logo
- Add content for profile icon
- Event Searching
- Register New Event
- Activity List
- Register New Activity
表記
o: Optional (任意)
M: Mandatory (必須)
時間について
APIでの日付と時間については常に国際標準時刻(協定世界時(UTC))として値を設定し、文字列の表記はISO8601拡張形式で表記する。
フォーマット: yyyy-mm-ddThh:mm:ss
例: 2017-04-21T12:00:09
Request
X-Mitty-Access-Token: String (O) Access Token for Authentication
Description
APIによって、認証済みでないと呼び出しできない。 そういうAPIについては、該当項目は必須。
Response
.HTTP Status
.JSON Response
{
result: {
status: OK/NG,
errorCode: String,
errorMessage: String
},
xxxx: {xxx}
}
POST http://dev.mitty.co/api/signup
parameter:
username: string
password: string
POST http://dev.mitty.co/api/signin
parameter:
username: string
password: string
POST /api/gallery/content
Header:
access-token: String
content-type: json/application
Input parameter
{
gallery: (O) -- Gallery オブジェクト自体はOptional
{
id: Int, (O) -- Gallery ID, 未設定の場合新規採番。
seq: Int, (O) -- 通番 未設定の場合同一ギャラリーのマックス通番+1
caption: string (O) -- ギャラリーのタイトル
briefInfo:string (O) -- 概要
freeText: string (O) -- 詳細説明
eventId: int8 (O) -- 設定されば場合は、Eventsテーブルに該当イベントのGallery IDを更新。
islandId: int8 (O) -- 設定されば場合は、Islandテーブルに該当島のGallery IDを更新。
},
content: (M) -- contentオブジェクトは必須。
{
mime : string (O) -- image/gif などMIME
name : string (O) -- コンテンツの名称
link_url : string (M/O) -- dataがあればNULL
data : byte array (M/O) -- link_urlがあればNULL
}
}
Output response
{
result: {status: OK/NG, message:String},
gallery: {id: Int, seq: Int, contentId: Int}
}
Description
考え方:
Galleryとは、イベントや島のアピールためのコンテンツの集まり、画像や、ビデオ、Youtubeなど外部リンクが考えられる。
Galleryにはコンテンツのアピール文言を格納し,コンテンツそのものはContentsテーブルに格納。
ContentsテーブルはLogoや、アイコン、写真、ビデオなどのコンテンツを一元に管理するテーブル、中の一部はGalleryに属する。
処理概要:
■ コンテンツ
JSON形式のパラメータを読み込み、Contentsテーブルに格納し、Contents Idを採番。
1)バイナリデータの場合、S3に格納し、そのS3のURLを含め情報をContentsテーブルに格納。
2)外部リンクの場合、そのままcontentsテーブルに格納する。
■ ギャラリー
格納したContents のIDを含め、パラメータから読み込んだGallery情報とともに Galleryテーブルに Insertする。
なお、Galleryにとって2件目以降のコンテンツは Gallery IDをparameterに含めるが、全くの新規の場合はGallery Id
がパラメータに含めず、サーバー側にて採番とする。
■ Events / Islandの更新
Gallery IDが新規採番された場合、Events/Islandのいずれに帰属しなければならない、EventsもしくはIslandの該当Gallery ID
のアプデートとする。
POST /api/event/logo
Input parameter
{}
Output response
{}
Description
JSON形式のパラメータを読み込み
POST /api/island/logo
Input parameter
{}
Output response
{}
Description
JSON形式のパラメータを読み込み
POST /api/profile/icon
Input parameter
{}
Output response
{}
Description
JSON形式のパラメータを読み込み
GET /api/event/list
Input parameter
{
category: Enum("recommendation"/"latest"/"topRate"),
key: String
}
Output response
{
count: int
[
event1, event2,....
]
}
event: {
id: int,
title: String,
type: enum, (M)
iconUrl: byte array, (O)
tag: , (M)
startDate: dateTime, (M)
endDate: dateTime, (M)
allDayFlag: book, (M)
action: string, (M)
image: URL, (O)
island: URL, (O)
placeName: string, (O)
address : string, (O)
islandIcon: URL, (O)
contactMail: String, (O)
contactTel: string, (O)
infoSource: string, (O)
url: URL (O)
}
Description
JSON形式のパラメータを読み込み、、、、
POST /api/new/event
Input parameter
{
type: string, (M) -- イベントの種類
tag: string, (M) -- イベントについて利用者が入力したデータの分類識別。
title: string, (M) -- イベントタイトル
action: string, (M) -- イベントの行い概要内容
startDate: dateTime, (M) -- イベント開始日時
endDate: dateTime, (M) -- イベント終了日時
allDayFlag: bool, (M) -- 時刻非表示フラグ。
islandId: int, (M) -- 島ID
priceName1: string, (O) -- 価格名称1
price1: Double , (O) -- 価格額1
priceName2, (O) -- 価格名称2
price2: Double , (O) -- 価格額2
currency: string (O) -- 通貨 (USD,JPY,などISO通貨3桁表記)
priceInfo: string (O) -- 価格について一般的な記述
description: string (M) -- イベントについて詳細な説明記述
contactTel: string, (O) -- 連絡電話番号
contactFax: string, (O) -- 連絡FAX
contactMail: string, (O) -- 連絡メール
officialUrl: URL, (O) -- イベント公式ページURL
organizer: string, (O) -- 主催者の個人や団体の名称
sourceName: string, (M) -- 情報源の名称
sourceUrl: URL, (O) -- 情報源のWebPageのURL
anticipation: string, (O) -- イベント参加方式、 OPEN: 自由参加、 INVITATION:招待制、PRIVATE:個人用、他の人は参加不可。
accessControl: string, (O) -- イベント情報のアクセス制御: PUBLIC: 全公開、 PRIVATE: 非公開、 SHARED:関係者のみ
language: string (M) -- 言語情報 (Ja_JP, en_US, en_GB) elastic searchに使用する。
}
Output response
{
result: {},
eventId: int
}
変更履歴
4/26: Price1 〜 PriceInfoまでの項目にデータ型を漏れてったので、追記しました。
Description
JSON形式のパラメータを読み込み、eventsテーブルに登録する。
イベントidを採番しレスポンスに返す。
エラーの場合、エラーコードとエラーメッセージを返す。
設定する項目は基本eventsテーブルの同名項目, parameterに指定ない項目は基本null設定するが、時間とIDについては適宜設定。
Elasticについて
elastic searchの登録対象項目は下記通り。
title,
action,
description,
priceInfo,
organizer,
sourceName
GET /api/activity/list
Input parameter
{
category: Enum("thisYear"/"nextYear"/"specific")
key: String
}
Output response
{
count: int
[
activity1, activity2,....
]
}
activity: {
id: int,
eventId: int,
eventTitle: String,
memo: String
startDateTime: dateTime,
endDateTime: dateTime,
notification: boolean,
}
Description
JSON形式のパラメータを読み込み、、、、
POST /api/activity/register
Input parameter
{}
Output response
{}
Description
JSON形式のパラメータを読み込み、、、、