UniBaaS DB API (1.0.0)

Download OpenAPI specification:

UniBaaS DB が提供する 利用者用API 群の仕様書です。

このAPIは、UniBaaSの利用者であるユーザが利用するAPIであり、API Key による認証が必要です。

collection

コレクションに関する操作

コレクション一覧取得

コレクションの一覧を取得します。

Authorizations:
APIGatewayKey
path Parameters
partner_id
required
string

UniBaaS PartnerID

query Parameters
limit
integer <= 100
Default: 20

取得する件数 (value ≤ 100)

offset
integer
Default: 0

オフセット

sort
string
Default: "collection_id"

ソート

使い方

ソート項目を複数指定する場合は , 区切りで指定してください。
優先度は先頭の項目を高とし順に低くなります。
ソート順のデフォルトは昇順になります。
降順を指定する場合は、項目の先頭に - を付与してください。
ネストした項目を指定する場合は dot 記法で指定してください。

降順指定の例

date を降順で指定する場合は次のように指定します。

-date

dot 記法の例

{'person':{'name':{'first': 'taro' }}} の taro は次のように指定します。

person.name.first

複数指定の例

複数指定の例として、次のようなソート指定をする場合の例を記します。

  • タイトル: 昇順
  • アドレス: 降順
  • ファーストネーム: 昇順
  • オブジェクト ID: 降順
sort=title,-address,person.name.first,-_id

振る舞いに関する補足

ユースケースによっては、指定したソート項目がドキュメントに存在する/しないといったケースがありえます。
そのような場合の振る舞いについて記します。
サンプルデータ:

{'title': 'title5', 'author': 'author1'}
{'title': 'title1'}
{'title': 'title2', 'author': 'author2'}
{'title': 'title3'}
{'title': 'title4', 'author': 'author1'}

上記のサンプルデータに対して sort=author でソート指定した場合は次のようになります。

{'title': 'title1'}
{'title': 'title3'}
{'title': 'title5', 'author': 'author1'}
{'title': 'title4', 'author': 'author1'}
{'title': 'title2', 'author': 'author2'}
  • author がないデータからソートします。また、この author がないデータ群に対して他のソート指定がない場合の並び順は不定です。
  • 重複している author1 に対して他のソート指定がない場合の並び順は不定です。
    上記のサンプルデータに対して sort=-author でソート指定した場合は次のようになります。
{'title': 'title2', 'author': 'author2'}
{'title': 'title5', 'author': 'author1'}
{'title': 'title4', 'author': 'author1'}
{'title': 'title1'}
{'title': 'title3'}
  • author があるデータからソートします。
  • 重複している author1 に対して他のソート指定がない場合の並び順は不定です。
  • author がないデータは末尾にソートし、他のソート指定がない場合の並び順は不定です。
fields
string
Default: "collection_id"

取得項目

使い方

取得項目を複数指定する場合は , 区切りで指定してください。
またネストした項目を指定する場合は dot 記法で指定してください。

dot 記法の例

{'person':{'name':{'first': 'taro' }}} の taro は次のように指定します。

person.name.first

複数指定の例

オブジェクト ID、タイトル、アドレス、ファーストネームという複数項目を指定する場合は次のように指定します。

fields=_id,title,address,person.name.first
query
string
Example: query=%7B%22title%22%3A+%22document%22%2C+%22address%22%3A+%22tokyo%22%2C+%22person.name.first%22%3A+%22taro%22%7D

クエリ(要 URL エンコード)

使い方

取得条件を json 形式で記述し、 URL エンコードした文字列を設定します。
また複数のキーを指定することで AND 条件で絞り込むことができます。
ネストした項目を指定する場合は dot 記法で指定してください。

dot 記法の例

{'person':{'name':{'first': 'taro' }}} の taro は次のように指定します。

person.name.first

URL エンコードの例

次のような取得条件で絞り込む場合の例を記します。

  • タイトル: document
  • アドレス: tokyo
  • ファーストネーム: taro json の例は次のようになります。
{"title": "document", "address": "tokyo", "person.name.first": "taro"}

URL エンコードした例は次のようになります。(長いため一部省略しています)

query=%7B%22title%22%3A+%22document%22%2C...person.name.first%22%3A+%22taro%22%7D

制限事項

  • 完全一致のみの対応となります。
  • OR 条件には対応していません。
  • 正規表現には対応していません。
  • 取得条件はトップレベルにのみ記載してください。ネストしたオブジェクトが存在する場合の振る舞いは不定です。

Responses

Response samples

Content type
application/json
[
  • {
    }
]

コレクション作成

コレクションを作成します。
リクエストボディにはコレクションを識別するための情報をBase64エンコードして設定します。
設定した識別情報は「コレクションの一覧を取得する」の各種条件として指定することができます。

制限事項

  • json の key に . を含めないでください
    • 一覧取得の API では . (dot)を用いた項目指定を行います。このため json の key に . を含めないでください。一覧取得の API の振る舞いに支障が生じます。
Authorizations:
APIGatewayKey
Request Body schema: application/json

リクエストボディ

object

Responses

Request samples

Content type
application/json
{
  • "tag": "tag"
}

Response samples

Content type
application/json
{
  • "collection_id": "string"
}

コレクション削除

コレクションを削除します。コレクションに紐づくドキュメントも削除します。

Authorizations:
APIGatewayKey
path Parameters
partner_id
required
string

UniBaaS PartnerID

collection_id
required
string

コレクション ID

Responses

コレクションインポート

コレクションをインポートします

インポートデータについて

  • インポートデータは 1行1ドキュメントのJSON 形式で記述してください
  • _id _created_at _updated_at が指定されていないドキュメントの場合、それらのフィールドは自動生成されます _ _id が指定されている場合は、指定された _id が存在する場合は更新、存在しない場合は新規登録となります

制限事項

アップロード可能なファイルサイズは10MBが上限です。それを超えるファイルをアップロードした場合はエラーが返却されます。

その他

10Mを超えるデータにはコレクションインポートバッチ処理を利用してください。

Authorizations:
APIGatewayKey
path Parameters
partner_id
required
string

UniBaaS PartnerID

collection_id
required
string

コレクション ID

Responses

コレクションエクスポート

指定されたコレクションをエクスポートします。

エクスポートデータについて

  • エクスポートデータは 1行1ドキュメントのJSON 形式で改行コード(LF)で区切られています
  • サンプルデータ
{"_id":"1234567890abcdefghijklnm","title":"t1",_created_at:"2023-11-30T04:58:44.373Z",pid:12,"contents":[{"content":"1"},{"content":"2"}]}
{"_id":"234567890abcdefghijklnmo","title":"t2",_created_at:"2023-11-30T04:58:44.373Z",pid:13,"contents":[{"content":"1"},{"content":"2"}]}

制限事項

  • エクスポート可能なファイルサイズは6MBが上限です。それを超えるファイルをエクスポートした場合はエラー 413 が返却されます。
  • 30秒を超えるクエリは失敗しエラー504が返却されます。
  • レスポンスは gzip 圧縮されます。

その他

6Mを超えるデータにはコレクションエクスポートバッチ処理を利用してください。

Authorizations:
APIGatewayKey
path Parameters
partner_id
required
string

UniBaaS PartnerID

collection_id
required
string

コレクション ID

query Parameters
limit
integer <= 上限なし
Default: 20

取得する件数

offset
integer
Default: 0

オフセット

sort
string
Default: "collection_id"

ソート

使い方

ソート項目を複数指定する場合は , 区切りで指定してください。
優先度は先頭の項目を高とし順に低くなります。
ソート順のデフォルトは昇順になります。
降順を指定する場合は、項目の先頭に - を付与してください。
ネストした項目を指定する場合は dot 記法で指定してください。

降順指定の例

date を降順で指定する場合は次のように指定します。

-date

dot 記法の例

{'person':{'name':{'first': 'taro' }}} の taro は次のように指定します。

person.name.first

複数指定の例

複数指定の例として、次のようなソート指定をする場合の例を記します。

  • タイトル: 昇順
  • アドレス: 降順
  • ファーストネーム: 昇順
  • オブジェクト ID: 降順
sort=title,-address,person.name.first,-_id

振る舞いに関する補足

ユースケースによっては、指定したソート項目がドキュメントに存在する/しないといったケースがありえます。
そのような場合の振る舞いについて記します。
サンプルデータ:

{'title': 'title5', 'author': 'author1'}
{'title': 'title1'}
{'title': 'title2', 'author': 'author2'}
{'title': 'title3'}
{'title': 'title4', 'author': 'author1'}

上記のサンプルデータに対して sort=author でソート指定した場合は次のようになります。

{'title': 'title1'}
{'title': 'title3'}
{'title': 'title5', 'author': 'author1'}
{'title': 'title4', 'author': 'author1'}
{'title': 'title2', 'author': 'author2'}
  • author がないデータからソートします。また、この author がないデータ群に対して他のソート指定がない場合の並び順は不定です。
  • 重複している author1 に対して他のソート指定がない場合の並び順は不定です。
    上記のサンプルデータに対して sort=-author でソート指定した場合は次のようになります。
{'title': 'title2', 'author': 'author2'}
{'title': 'title5', 'author': 'author1'}
{'title': 'title4', 'author': 'author1'}
{'title': 'title1'}
{'title': 'title3'}
  • author があるデータからソートします。
  • 重複している author1 に対して他のソート指定がない場合の並び順は不定です。
  • author がないデータは末尾にソートし、他のソート指定がない場合の並び順は不定です。
fields
string
Default: "collection_id"

コレクション一覧取得APIと同様に、エクスポートするフィールドを指定します。指定しない場合は全フィールドがエクスポートされます。

query
string
Example: query=%7B%22title%22%3A+%22document%22%2C+%22address%22%3A+%22tokyo%22%2C+%22person.name.first%22%3A+%22taro%22%7D

クエリ(要 URL エンコード)

使い方

取得条件を json 形式で記述し、 URL エンコードした文字列を設定します。
また複数のキーを指定することで AND 条件で絞り込むことができます。
ネストした項目を指定する場合は dot 記法で指定してください。

dot 記法の例

{'person':{'name':{'first': 'taro' }}} の taro は次のように指定します。

person.name.first

URL エンコードの例

次のような取得条件で絞り込む場合の例を記します。

  • タイトル: document
  • アドレス: tokyo
  • ファーストネーム: taro json の例は次のようになります。
{"title": "document", "address": "tokyo", "person.name.first": "taro"}

URL エンコードした例は次のようになります。(長いため一部省略しています)

query=%7B%22title%22%3A+%22document%22%2C...person.name.first%22%3A+%22taro%22%7D

制限事項

  • 完全一致のみの対応となります。
  • OR 条件には対応していません。
  • 正規表現には対応していません。
  • 取得条件はトップレベルにのみ記載してください。ネストしたオブジェクトが存在する場合の振る舞いは不定です。

Responses

Response samples

Content type
application/octet-stream
{"_id":"1234567890abcdefghijklnm","title":"t1",_created_at:"2023-11-30T04:58:44.373Z",pid:12,"contents":[{"content":"1"},{"content":"2"}]}
{"_id":"234567890abcdefghijklnmo","title":"t2",_created_at:"2023-11-30T04:58:44.373Z",pid:13,"contents":[{"content":"1"},{"content":"2"}]}

document

ドキュメントに関する操作

ドキュメント一覧取得

ドキュメントの一覧を取得します。

制限事項

  • レスポンスサイズは6MBが上限です。結果がそれを超える場合はエラー413が返却されます。
  • レスポンスは gzip 圧縮されます。
Authorizations:
APIGatewayKey
path Parameters
partner_id
required
string

UniBaaS PartnerID

collection_id
required
string

コレクション ID

query Parameters
limit
integer <= 100
Default: 20

取得する件数 (value ≤ 100)

offset
integer
Default: 0

オフセット

sort
string
Default: "_id"

ソート

使い方

ソート項目を複数指定する場合は , 区切りで指定してください。
優先度は先頭の項目を高とし順に低くなります。
ソート順のデフォルトは昇順になります。
降順を指定する場合は、項目の先頭に - を付与してください。
ネストした項目を指定する場合は dot 記法で指定してください。

降順指定の例

date を降順で指定する場合は次のように指定します。

-date

dot 記法の例

{'person':{'name':{'first': 'taro' }}} の taro は次のように指定します。

person.name.first

複数指定の例

複数指定の例として、次のようなソート指定をする場合の例を記します。

  • タイトル: 昇順
  • アドレス: 降順
  • ファーストネーム: 昇順
  • オブジェクト ID: 降順
sort=title,-address,person.name.first,-_id

振る舞いに関する補足

ユースケースによっては、指定したソート項目がドキュメントに存在する/しないといったケースがありえます。
そのような場合の振る舞いについて記します。
サンプルデータ:

{'title': 'title5', 'author': 'author1'}
{'title': 'title1'}
{'title': 'title2', 'author': 'author2'}
{'title': 'title3'}
{'title': 'title4', 'author': 'author1'}

上記のサンプルデータに対して sort=author でソート指定した場合は次のようになります。

{'title': 'title1'}
{'title': 'title3'}
{'title': 'title5', 'author': 'author1'}
{'title': 'title4', 'author': 'author1'}
{'title': 'title2', 'author': 'author2'}
  • author がないデータからソートします。また、この author がないデータ群に対して他のソート指定がない場合の並び順は不定です。
  • 重複している author1 に対して他のソート指定がない場合の並び順は不定です。
    上記のサンプルデータに対して sort=-author でソート指定した場合は次のようになります。
{'title': 'title2', 'author': 'author2'}
{'title': 'title5', 'author': 'author1'}
{'title': 'title4', 'author': 'author1'}
{'title': 'title1'}
{'title': 'title3'}
  • author があるデータからソートします。
  • 重複している author1 に対して他のソート指定がない場合の並び順は不定です。
  • author がないデータは末尾にソートし、他のソート指定がない場合の並び順は不定です。
fields
string
Default: "_id"

取得項目

使い方

取得項目を複数指定する場合は , 区切りで指定してください。
またネストした項目を指定する場合は dot 記法で指定してください。

dot 記法の例

{'person':{'name':{'first': 'taro' }}} の taro は次のように指定します。

person.name.first

複数指定の例

オブジェクト ID、タイトル、アドレス、ファーストネームという複数項目を指定する場合は次のように指定します。

fields=_id,title,address,person.name.first
query
string
Example: query=%7B%22title%22%3A+%22document%22%2C+%22address%22%3A+%22tokyo%22%2C+%22person.name.first%22%3A+%22taro%22%7D

クエリ(要 URL エンコード)

使い方

取得条件を json 形式で記述し、 URL エンコードした文字列を設定します。
また複数のキーを指定することで AND 条件で絞り込むことができます。
ネストした項目を指定する場合は dot 記法で指定してください。

dot 記法の例

{'person':{'name':{'first': 'taro' }}} の taro は次のように指定します。

person.name.first

URL エンコードの例

次のような取得条件で絞り込む場合の例を記します。

  • タイトル: document
  • アドレス: tokyo
  • ファーストネーム: taro json の例は次のようになります。
{"title": "document", "address": "tokyo", "person.name.first": "taro"}

URL エンコードした例は次のようになります。(長いため一部省略しています)

query=%7B%22title%22%3A+%22document%22%2C...person.name.first%22%3A+%22taro%22%7D

制限事項

  • 完全一致のみの対応となります。
  • OR 条件には対応していません。
  • 正規表現には対応していません。
  • 取得条件はトップレベルにのみ記載してください。ネストしたオブジェクトが存在する場合の振る舞いは不定です。

Responses

Response samples

Content type
application/json
[
  • {
    }
]

ドキュメント登録

ドキュメントを登録します。登録するドキュメントは json 形式でBase64エンコードして記述してください。

制限事項

サイズ上限

ドキュメントのサイズ上限は 10MB になります。

バイナリデータに関して

画像ファイルや word ファイルといったバイナリデータを登録する場合は、クライアント側で Base64 にてエンコードしたうえでご登録ください。また取得する場合にはクライアン側でデコードしたうえでご利用ください。

json のトップレベルの key に _id, _created_at, _updated_at を含めないでください

_id, _created_at, _updated_at は DB 側の予約語として利用いたします。このため json のトップレベルの key に _id, _created_at, _updated_at を含めないでください。

json の key に . を含めないでください

一覧取得や更新などの API では . (dot)を用いた項目指定を行います。このため json の key に . を含めないでください。一覧取得や更新などの API の振る舞いに支障が生じます。

Authorizations:
APIGatewayKey
path Parameters
collection_id
required
string

コレクション ID

Request Body schema: application/json

リクエストボディ

object

Responses

Request samples

Content type
application/json
{
  • "title": "title",
  • "contents": {
    }
}

Response samples

Content type
application/json
{
  • "document_id": "string"
}

ドキュメント取得

ドキュメントを取得します。

Authorizations:
APIGatewayKey
path Parameters
partner_id
required
string

UniBaaS PartnerID

collection_id
required
string

コレクション ID

document_id
required
string

ドキュメント ID

Responses

Response samples

Content type
application/json
{
  • "_id": "1234567890abcdefghijklnm",
  • "title": "title",
  • "contents": {
    }
}

ドキュメント更新

ドキュメントを更新します。

Authorizations:
APIGatewayKey
path Parameters
collection_id
required
string

コレクション ID

document_id
required
string

ドキュメント ID

query Parameters
type
string
Default: "replace"
Enum: "replace" "update"

更新方法

  • replace - 対象のドキュメントをリクエストの内容に置き換えます。
  • update - 対象ドキュメントを部分的に更新します。

update について

update を利用する場合は対象項目を dot 記法で指定してください。

{'person':{'name':{'first': 'taro' }}} の taro を jiro に更新する場合は次のように指定します。

{'person.name.first':'jiro'}
Request Body schema: application/json

リクエストボディ

object

Responses

Request samples

Content type
application/json
Example
{
  • "title": "title",
  • "contents": {
    }
}

ドキュメント削除

ドキュメントを削除します。

Authorizations:
APIGatewayKey
path Parameters
collection_id
required
string

コレクション ID

document_id
required
string

ドキュメント ID

Responses

apikey

APIKeyに関する操作

APIKey更新

現在使用中のAPIKeyを破棄し新たにAPIKeyを作成します。

注意事項

本APIを使用してAPIKeyを更新する場合、既存のAPIKeyはただちに無効化されます。既存のAPIKeyを使用しているアプリケーションは新しいAPIKeyを使用するように変更してください。

Authorizations:
APIGatewayKey
path Parameters
partner_id
required
string

UniBaaS PartnerID

Responses

Response samples

Content type
application/json
{
  • "api_key": "string"
}

batch

バッチ処理に関する操作

コレクションインポートバッチ処理

コレクションをインポートするバッチ処理を開始し、アップロード用URLを取得します。

アップロード用URLに対してファイルをアップロードすることで、コレクションをインポートするバッチ処理を開始します。

バッチ処理の状態は、コレクションインポートバッチ処理ステータス取得APIを使用して取得できます。 バッチ処理が完了したらダウンロード用URLを取得できるので、エクスポートデータをダウンロードしてください。

インポートデータについて

  • インポートデータは 1行1ドキュメントのJSON 形式で記述してください
  • _id _created_at _updated_at が指定されていないドキュメントの場合、それらのフィールドは自動生成されます _ _id が指定されている場合は、指定された _id が存在する場合は更新、存在しない場合は新規登録となります

バッチ処理について

  • アップロード用URLの有効期限は15分です
  • アップロード用URLへ PUT メソッドでファイルをアップロードしてください

制限事項

  • 15分を超える処理時間を要するバッチ処理は行なえません。
Authorizations:
APIGatewayKey
path Parameters
partner_id
required
string

UniBaaS PartnerID

collection_id
required
string

コレクション ID

Responses

Response samples

Content type
application/json
{}

コレクションインポートバッチ処理ステータス取得

コレクションインポートバッチ処理APIで取得したjob_idを指定して、バッチ処理のステータスを取得します。

ステータスについて

  • QUEUED - ジョブがキューに追加されている状態
  • RUNNING - ジョブが実行中の状態
  • COMPLETED - ジョブが完了した状態
  • FAILED - ジョブが失敗した状態
Authorizations:
APIGatewayKey
path Parameters
partner_id
required
string

UniBaaS PartnerID

collection_id
required
string

コレクション ID

Responses

Response samples

Content type
application/json
{
  • "job_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  • "job_type": "IMPORT",
  • "status": "QUEUED",
  • "progress": 50
}

コレクションエクスポートバッチ処理

コレクションをエクスポートするバッチ処理を開始し、ジョブIDを取得します。

バッチ処理は非同期で行なわれ、コレクションエクスポートバッチ処理ステータス取得APIを使用して処理状態を取得できます。 バッチ処理が完了したらダウンロード用URLを取得できるので、エクスポートデータをダウンロードしてください。

エクスポートデータについて

コレクションエクスポートAPIと同様の形式でエクスポートデータが出力されます。

制限事項

  • 15分を超える処理時間を要するバッチ処理は行なえません。
Authorizations:
APIGatewayKey
path Parameters
partner_id
required
string

UniBaaS PartnerID

collection_id
required
string

コレクション ID

Responses

Response samples

Content type
application/json
{
  • "job_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

コレクションエクスポートバッチ処理ステータス取得

コレクションエクスポートバッチ処理APIで取得したjob_idを指定して、バッチ処理のステータスを取得します。

処理が完了したらダウンロード用URLを取得できるので、GETメソッドを使用してダウンロードしてください。

ステータスについて

  • QUEUED - ジョブがキューに追加されている状態
  • RUNNING - ジョブが実行中の状態
  • COMPLETED - ジョブが完了した状態
  • FAILED - ジョブが失敗した状態

制限事項

  • 処理成功時に発行されるダウンロード用URLの有効期限は120分です。
Authorizations:
APIGatewayKey
path Parameters
partner_id
required
string

UniBaaS PartnerID

collection_id
required
string

コレクション ID

Responses

Response samples

Content type
application/json
{
  • "job_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  • "job_type": "EXPORT",
  • "status": "QUEUED",
  • "progress": 50,
}