Coppell Technologies
スマートシティの標準規格
5. 呼出しインタフェース
|
2022-09-20
既に述べたデジタル庁の推奨モジュールは、そのインタフェースにNGSI V2を採用しています。従って、標準とすべき呼出しインタフェースは、NGSI V2で採用しているWebAPIを採用すべきと考えます。従って、本書ではWebAPと記載した場合、NGSI v2の仕様に準拠した、HTTPプロトコルにより実現されたRESTfulなAPIを指します。
RESTful APIとは、REST原則に従ったAPIの事を指します。RESTとは、Roy Fielding氏が2000年に提唱した、REpresentational State Transferの略で、以下の項目からなります。
項目 |
原則とNGSI V2の仕様 |
Addressability |
リソースがURIで表現されています。8章で詳しく説明しますが、NGSI V2では全てのデータ(Entity)やその項目(Attribute)にURLが割り振られ、世界で唯一のアドレスを持っています。 |
Stateless |
クライアント-サーバ型のAPIであり、個々のAPIが独立しています。これは、ある瞬間にAPIを実行して取得した情報は、次の瞬間には他のプログラムによって更新されているかもしれないと言う事を示しています。例えば、APIで読み出した値に対し何らかの操作(計算や文字列の加工など)を加えて次のAPIでその値を更新すると、タイミングによっては結果が正しくないと言う事です。つまり、一回のAPIの実行で更新が完結する機能の提供が必要という事になり、NGSI V2では「更新演算子」をサポートしています。また、一回のAPIの実行はアトミック性があります。これは複数の項目を更新するAPIがエラーなっても、更新が中途半端にはならないと言う事を示しています。 |
Connectability |
データ(Entity)の中に他のデータを指すリンクを含める事が可能です。NGSI V2では慣例的にリンクを格納する項目名の先頭に"ref"を付ける事、Attribute typeをRelatioshipと記載することになっています。慣例的なものですが、後述するようにスマートシティの本書では正式にルールにしたいと思います。これは、NGSI-LDへの変換が必要になった場合に機械的に変換できる様にするためです。 |
Uniform Interface |
http動詞により動作を指定できます。http動詞については次項で説明しますが、"GET"、"POST"などの文字列です。クライアントがAPIを発行(リクエストと言います)するときに、これらの文字列とAddressabilityで説明したURLを指定する事により。サーバは何を要求されているのか理解します。 |
|
