-
Notifications
You must be signed in to change notification settings - Fork 4
API Document
yuta-ike edited this page Mar 13, 2021
·
26 revisions
https://sotesote.tkにAPIサーバーをホストしています。
Docker使える人はローカルでコンテナ起動すればhttp://localhostにホストされます。
- URL(
/api/以下の相対パス、モックのエンドポイントは/mock/の相対パス) - Method
- 説明
- Request
- Response
/lending- POST
- 貸す人が貸出情報の登録をする。
Authorization: Bearer <貸す人のアクセストークン>
{
'content': string (貸したもの),
'deadline': Datetime (期限)
}
{
'lending_id': int (作成された貸出id)
}
lending/<貸出id:string>/sent-urlPUT- 借りた人にURL送信したことを登録する
Authorization: Bearer <貸した人のアクセストークン>
正常時
{
'status': 'success'
}
lending_idの貸し借りが存在しなかった場合
{
'status': 'error',
'messsage': <エラーメッセージ:string>
}
/lending/<貸出id:string>GET- 貸出idで指定された貸出情報を取得する
正常時
{
'lending_id': int (貸出id),
'content': string (借りたもの),
'deadline': Datetime (期限),
'owner_name': string (貸した人の名前),
'is_associated': boolean (リクエストしたユーザーが借主として既に紐づけられているか)
}
リクエストしたユーザーと異なるユーザーが、既に借主として紐づけられていた場合
404 Not Found
{
'status_code': 404,
'error_code': 'Not Found'
}
/lending/<貸出id:string>- PUT
- 貸出idで指定された貸出情報に、借りた人(アクセストークンから取得)を紐付ける.
Authorization: Bearer <借りた人のアクセストークン>
正常時
{
'status': 'success',
'result': {
'lending_id': int (貸出id),
'content': string (借りたもの),
'deadline': Datetime (期限),
'owner_name': string (貸した人の名前),
'is_new_user': bool (新規のユーザーだった場合true)
}
}
既に紐づけられていた場合
409 Conflict
{
'status_code': 409,
'error_code': 'already associated',
'error': 'That lending already has borrower.'
}
/owner/lending- GET
- あるユーザの貸したものの一覧を取得する(貸した人にURLを送信済みのもののみ)
Authorization: Bearer <貸した人のアクセストークン>
{
'lending_list': [
{
'lending_id': int (貸出id),
'content': string (貸したもの),
'deadline': Datetime (期限),
'borrower_name': string (借りた人の名前、まだ紐づけられていない場合はnull),
},
...
]
}
/borrower/lending- GET
- あるユーザの借りたものの一覧を取得する
Authorization: Bearer <借りた人のアクセストークン>
{
'lending_list': [
{
'lending_id': int (貸出id),
'content': string (貸したもの),
'deadline': Datetime (期限),
'owner_name': string (貸した人の名前)
},
...
]
}
/lending/{貸出id}- DELETE
- 貸出情報のステータスを返却済みにする。アクセストークンから取得したユーザと、貸出idで指定された貸出情報のownerIdのユーザが一致するか検証する。
Authorization: Bearer <貸した人のアクセストークン>
{
'lending_id': int (貸出id),
'borrower_name': string (借りた人の名前),
'content': string (貸すもの),
'deadline': Datetime (期限)
}
/friend- POST
- 二人のユーザーをフレンド登録する
Authorization: Bearer <エンドポイントを叩くユーザーのアクセストークン>
{
'friend_id': str (エンドポイントを叩くユーザーに自分のuser_idを送ったユーザーのid)
}
正常時
{
'user_name': string (エンドポイントを叩くユーザーの名前),
'friend_name': string (エンドポイントを叩くユーザーに自分のuser_idを送ったユーザーの名前)
}
2人のユーザーが既にフレンドだった場合
409 Conflict
{
'status_code': 409,
'error_code': 'Conflict',
'error': <エラーメッセージ:string>
}
※userとfriendは対等な関係であり、入れ替わってもフレンド登録処理の結果は同じ。
/friend- DELETE
- フレンド登録を解除する
Authorization: Bearer <エンドポイントを叩くユーザーのアクセストークン>
{
'friend_id': str (解除するフレンドのuser_id)
}
正常時
{
'user_name': string (エンドポイントを叩くユーザーの名前),
'friend_name': string (解除されたフレンドの名前)
}
2人のユーザーがフレンドじゃなかった場合
409 Conflict
{
'status_code': 409,
'error_code': 'Conflict',
'error': <エラーメッセージ:string>
}
※userとfriendは対等な関係であり、入れ替わってもフレンド登録解除処理の結果は同じ。
/want-to-borrow- POST
- ユーザーの借りたいものリストに項目を追加する
Authorization: Bearer <ユーザーのアクセストークン>
{
content: string (借りたいもの)
}
{
'want_to_borrow_id: int (追加された借りたいもののid)
}
/want-to-borrow/own- GET
- アクセストークンから取得したユーザーidの借りたいものリストを取得する
Authorization: Bearer <ユーザーのアクセストークン>
{
}
{
'want_to_borrow_list': [
{
'want_to_borrow_id': int (借りたいもののid),
'content': string (借りたいもの)
},
...
]
}
/want-to-borrow- GET
- 指定されたユーザーのフレンドの借りたいものリストを取得する
Authorization: Bearer <ユーザーのアクセストークン>
{
}
{
<フレンドのuser_id: string>: {
'name': string (フレンドの名前),
'want_to_borrow_list': [
{
'want_to_borrow_id': int (借りたいもののid),
'content': string (借りたいもの)
},
... ]
},
...
}
/want-to-borrow/<借りたいもののid>- DELETE
- 借りたいものリストから指定した項目を削除する
Authorization: Bearer <ユーザーのアクセストークン>
{
}
{
'content': string (削除された借りたいもの)
}
/bot/~~~