既定のAPIバージョン 1.1 への変更および旧バージョンとの互換性について
## 概要
バージョン 1.3.13.0 において、既定のAPIバージョンが 1.0 から 1.1 に変更となりAPIのリクエスト及びレスポンスのデータレイアウトが変更になります。また、バージョン 1.3.12.0 以前のバージョンに存在した不具合(APIキーを指定しないリクエストでApiVersionが正しくセットされない問題)が解消されることによって同様の変更が発生いたします。旧バージョンで開発したAPI呼び出しの互換性を維持するため、パラメータの調整が必要となります。
# API バージョン 1.0/1.1の変更内容
APIリクエストおよびAPIレスポンスのデータレイアウトが下記のように変更となります。
## バージョン 1.0
[分類項目](/ja/manual/table-management-class)、[数値項目](/ja/manual/table-management-num)、[日付項目](/ja/manual/table-management-date)、[説明項目](/ja/manual/table-management-description)、[チェック項目](/ja/manual/table-management-check)、[添付ファイル項目](/ja/manual/table-management-attachments)のデータレイアウトはフラットに表現されます。
なお、バージョン1.0の場合は上記項目のレスポンスが、例えば分類項目の場合はClassA~Class100までとなっており、Class101以降のレスポンスを取得したい場合はバージョン1.1をご利用ください。
```json
{
"ApiVersion": 1.0,
"Title": "API 1.0",
"ClassA": "ClassA",
"NumA": 123,
"DateA": "2022/7/2",
"DescriptionA": "DescriptionA",
"CheckA": true
}
```
## バージョン 1.1
[分類項目](/ja/manual/table-management-class)、[数値項目](/ja/manual/table-management-num)、[日付項目](/ja/manual/table-management-date)、[説明項目](/ja/manual/table-management-description)、[チェック項目](/ja/manual/table-management-check)、[添付ファイル項目](/ja/manual/table-management-attachments)のデータレイアウトがKeyValue形式に変更となります。
```json
{
"ApiVersion": 1.1,
"Title": "API 1.1",
"ClassHash": {
"ClassA": "ClassA"
},
"NumHash": {
"NumA": 123
},
"DateHash": {
"DateA": "2022/7/2"
},
"DescriptionHash": {
"DescriptionA": "DescriptionA"
},
"CheckHash": {
"CheckA": true
}
}
```
# APIバージョン指定方法
APIバージョンの既定値はパラメータで設定します。またAPIのリクエストパラメータで明示的に指定することが可能です。
## [Api.json](/ja/manual/api-json)のVersionパラメータ
APIバージョンを指定しないAPI呼び出しで使用されるバージョンです。既定値は1.1です。旧バージョンの仕様に変更する場合には、1.0 に変更してください。
## リクエストパラメータ
API実行時のリクエストパラメータでAPIバージョンを指定できます。未指定の場合はAPI.jsonのVersionパラメータの値となります。旧バージョンの仕様に変更する場合は、1.0 を指定してください。
### [レコード取得API](/ja/manual/api-record-get)のリクエスト
##### JSON
```
{
"ApiVersion": 1.0,
"ApiKey": "63Kfk0ds3d4S2DBsa32..."
}
```
### [$p.apiGet](/ja/manual/script-api-get)のリクエスト
```
$p.apiGet({
id: <サイトID>,
data: {
"ApiVersion": 1.0,
<その他の取得条件>
},
done: <任意の処理>,
fail: <任意の処理>,
always: <任意の処理>
});
```
# Api.jsonのCompatibility_1_3_12パラメータ
バージョン 1.3.12.0 以前のバージョンに存在した不具合(APIキーを指定しないリクエストでApiVersionが正しくセットされない問題)に該当するAPI呼び出しが存在する場合に、互換性を維持するための設定です。既定値はfalseです。該当のAPI呼び出しを使用している場合には本パラメータを true に変更し[Api.json](/ja/manual/api-json) の Version を 1.0 に変更してください。尚、.NET Framework版では本不具合は発生していないため、.NET Framework版からの移行においてはfalseに設定してください。
## 該当するAPI呼び出し
データ内にApiVersionを指定しているがApiKeyを指定していないケースでは、ApiVersion 1.1 の指定が無視され 1.0 で動作する不具合がバージョン 1.3.12.0 以前に存在しました。バージョン 1.3.13.0 以降ではこの不具合が解消されるため、バージョン 1.1 の挙動に変更となります。
```json
{
"ApiVersion": 1.1
"Title": "1.0"
}
```
### Compatibility_1_3_12 : false の挙動
不具合が解消され、指定されたAPIバージョンで動作します。
|ApiVersion|ApiKey|挙動|
|:----|:----|:----|
|指定なし| |Api.jsonのVersion|
|1.0|指定あり|1.0|
|1.0|指定なし|1.0|
|1.1|指定あり|1.1|
|1.1|指定なし|**1.1**|
### Compatibility_1_3_12 : true の挙動
1.3.12.0 以前のバージョンと同様に ApiVersion の指定が無視されます。
|ApiVersion|ApiKey|挙動|
|:----|:----|:----|
|指定なし| |Api.jsonのVersion|
|1.0|指定あり|1.0|
|1.0|指定なし|1.0|
|1.1|指定あり|1.1|
|1.1|指定なし|**Api.jsonのVersion**|
## 関連情報
<div id="ManualList"><ul><li><a href="/ja/manual/api-json">パラメータ設定:Api.json</a><span>2024/12/12 up</span></li></ul></article>
<ul><li><a href="/ja/manual/table-management-class">テーブルの管理:項目:分類</a><span>2023/04/21 up</span></li>
<li><a href="/ja/manual/table-management-num">テーブルの管理:項目:数値</a><span>2023/04/21 up</span></li>
<li><a href="/ja/manual/table-management-date">テーブルの管理:項目:日付</a><span>2023/04/21 up</span></li>
<li><a href="/ja/manual/table-management-description">テーブルの管理:項目:説明</a><span>2023/04/21 up</span></li>
<li><a href="/ja/manual/table-management-check">テーブルの管理:項目:チェック</a><span>2024/06/03 up</span></li>
<li><a href="/ja/manual/table-management-attachments">テーブルの管理:項目:添付ファイル</a><span>2024/06/13 up</span></li></ul></article>
<ul><li><a href="/ja/manual/api-record-get">開発者向け機能:API:テーブル操作:単一レコード取得</a><span>2023/08/17 up</span></li>
<li><a href="/ja/manual/api-record-get-multi">開発者向け機能:API:テーブル操作:複数レコード取得</a><span>2023/12/14 up</span></li></ul></article>
<ul><li><a href="/ja/manual/script-api-get">開発者向け機能:スクリプト:$p.apiGet</a><span>2023/09/22 up</span></li></ul></article></div><input id="SearchTextHidden" type="hidden" value="" />