JP2020024567A - Api仕様書生成装置、api仕様書生成方法、およびプログラム - Google Patents

Api仕様書生成装置、api仕様書生成方法、およびプログラム Download PDF

Info

Publication number
JP2020024567A
JP2020024567A JP2018148615A JP2018148615A JP2020024567A JP 2020024567 A JP2020024567 A JP 2020024567A JP 2018148615 A JP2018148615 A JP 2018148615A JP 2018148615 A JP2018148615 A JP 2018148615A JP 2020024567 A JP2020024567 A JP 2020024567A
Authority
JP
Japan
Prior art keywords
api
oas
unit
setting
parameters
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2018148615A
Other languages
English (en)
Inventor
真吾 小俣
Shingo Komata
真吾 小俣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2018148615A priority Critical patent/JP2020024567A/ja
Priority to PCT/JP2019/030228 priority patent/WO2020031845A1/ja
Publication of JP2020024567A publication Critical patent/JP2020024567A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation

Abstract

【課題】APIリクエスト−レスポンスをもとに低コストでOAS仕様書を作成できるAPI仕様書生成装置、API仕様書生成方法、およびプログラムを提供する。【解決手段】API仕様書生成装置100は、OAS仕様書を作成する際の雛形ファイル121をあらかじめ設定するOAS雛形設定部111と、OAS仕様書で用いるパラメータ設定ロジックを記述する挿入値ファイル122を設定する挿入値ファイル設定部112と、APIリクエストとそのレスポンスをキャプチャするAPIリクエスト−レスポンスキャプチャ部102と、キャプチャしたAPIリクエスト−レスポンスデータと、挿入値ファイルの参照結果とを雛形ファイルに反映してパラメータを設定し、設定したパラメータをもとにOAS仕様書を作成するOAS作成部110とを備える。【選択図】図2

Description

本発明は、API仕様書生成装置、API仕様書生成方法、およびプログラムに関する。
各事業者がサービスを管理するためのAPI(Application Program Interface)をウェブ上にて提供しており、ユーザはAPIを呼び出すソフトウェアを通じてサービスを構築・運用している。APIの仕様(APIの名称、URL(Uniform Resource Locator)、パラメータ等)は、各事業者が規定しており、ユーザは当該規定に従ってAPIを使用する。
既存機能やAPI仕様をOAS(Open API spec)仕様に変換する技術として、非特許文献1,2に記載された技術がある。また、OASを活用した関連技術には、非特許文献3〜5に記載された技術がある。
非特許文献1には、データベース(DB)からWeb APIをドキュメント(Open API標準)と共に自動作成するツールが記載されている。
非特許文献2には、APIリクエスト−レスポンスから簡易的なOAS仕様書を自動作成するツールが記載されている。
非特許文献3には、存在従属グラフからSwagger仕様書の生成クラス図のようなドメインモデルからSwagger Specを作成する技術が記載されている。
非特許文献4には、API設計書に記載されているAPI特有のパラメータ(API概要、メソッド等)を解析し、Semantic的エラーを検出する技術が記載されている。
非特許文献5には、開発済のAPIを、TMF(TM Forum members)提供のCTK(Conformance Test Kits)に従いNewmanというツールを用いてAPIリクエストを送ると、Syntax的にTMF準拠になっているかチェックするツールが記載されている。このツールは、テスト結果をhtmlやjsonファイルとして生成する。
OASベースで設計/(「/」は、「および/または」、を表記する。以下同様。)開発されていない既存API(以降、「既存API」という)仕様を標準仕様書であるOAS形式にする場合について説明する。
図12は、OAS仕様書作成を説明する図であり、(a)はその全体構成図、(b)はその動作説明図である。図12(a)中、二重線で示される表記は、APIを示す(以下、各図において同様)。図13は、図12の簡易OASフォーマット作成ツールで用いるAPIリクエストおよびAPIレスポンスの一例を示す図である。
図12(a)に示すように、APL(Application)サービス(以下、既存APLという)11と既存機能12(既存機能A12という)との間には、インターフェースであるREST(REpresentational State Transfer) API10が設けられている。なお、REST API10は、HTTP以外のプロトコルに対応した機能はない。
既存APIからOAS仕様書を作成する場合、簡易OASフォーマット作成ツール(図12(a)の符号a参照)を用いて、既存APIのリクエスト−レスポンスを解析する。例えば、図12(b)に示すAPIリクエスト−レスポンス126(HTTP)を解析する。APIリクエスト−レスポンス126は、図13に示すAPIリクエスト124およびAPIレスポンス125からなる。
図12(b)の符号bに示すように、簡易OASフォーマット作成ツールを用いて、機能AについてOAS形式のフォーマット(機能A OASフォーマット20)を生成する。
図12(b)の符号cに示すように、開発者が、生成された機能A OASフォーマット20に対してパラメータ等の修正を加えて、機能A OAS仕様書21を作成する。
機能A OASフォーマット20に、微修正を加えて、機能A OAS仕様書21を作成している。
API Server: データベースからREST API を超高速で自動生成,[online],[平成30年7月15日検索],インターネット 〈URL: https://www.cdata.com/jp/apiserver/〉 Swagger inspector,[online],[平成30年7月15日検索],インターネット 〈URL: https://inspector.swagger.io/builder〉 井田明男,他2名,「存在従属グラフからSWAGGER仕様書の生成」,信学技報, IEICE Technical Report KBSE2016-29(2016-11) 小俣真吾,「API記述ルールに準拠したAPI設計支援方法に関する一検討」,第14 回NWS 研究会,Oct., 2017 CTK(Compatibility Test Kit),[online],[平成30年7月15日検索],インターネット 〈URL: github.com/tmforum/CustomerManagementCTK〉
上述したように、既存のREST APIのAPIリクエスト−レスポンス126の解析のみで簡易なOAS仕様書21の作成は可能である。
しかしながら、(1)単純なAPIリクエスト−レスポンス126のみの解析では、OASの仕様を決められないパラメータ(データ型、データ範囲、値の最大値/最小値等)が存在する。例えば、データ型(“string”,“number”,“integer”,“boolean”,“array”等)の決定や値の範囲(maximum minimum)を一意に特定してOASに反映させるのは難しく、加筆修正する必要がある。そのため、OAS仕様書を自動生成させても、OAS仕様書を修正する稼働が発生する。また、HTTP(Hypertext Transfer Protocol)以外のプロトコルに対応したOAS仕様書の自動生成技術は存在しない。
(2)APIリクエスト−レスポンス126のデータから、どのようなロジックでOASパラメータに反映するかのルールを設定する機能は存在しない。このため、各社独自パラメータやHTTP以外のプロトコルに対応できていない。
以上の理由から、非特許文献1〜5に記載された技術ついても下記の課題がある。
非特許文献1に記載の技術は、特定のDBから機械的にパラメータを設定可能な領域に限定した簡易なOASを作成することはできるものの、一意に特定不可なパラメータまでは設定できない。また、パラメータ設定のロジックを組むことも不可である。
非特許文献2に記載の技術は、パラメータを機械的に、設定可能な領域に限定した簡易なOASを作成することはできるものの、一意に特定不可なパラメータ(データ型、値の範囲等)までは設定できない。また、パラメータ設定のロジックを組むことも不可である。さらに、HTTPのみに対応であり、他のプロトコルに対応していない。
非特許文献3に記載の技術は、APIリクエスト−レスポンスの結果をもとに、Swagger Specを作成する技術については触れられていない。
非特許文献4に記載の技術は、OAS仕様書の作成について手書きを前提としており、既存APIのリクエストレスポンスを解析してOAS仕様書を自動生成する機能には触れられていない。また、非特許文献4に記載の技術は、カスタマイズ領域が特定の記述ルールに準拠しているか否かをチェックするチェックルールに限定されている。非特許文献4に記載の技術は、APIリクエスト−レスポンスパラメータの値をもとにOAS仕様書を作成する機能については触れられていない。
非特許文献5に記載の技術は、特定の記述ルールのうちSyntaxエラーを検出するツールであり、非特許文献5に記載の技術は、特定のルールへの準拠性を確認するのみである。このため、非特許文献5に記載の技術では、準拠性を確認するルールのカスタマイズは難しい。また、開発済APIのリクエスト−レスポンスの結果からSwagger Specを自動生成する技術は具備していない。
上記非特許文献1〜5のいずれの技術についても、APIリクエスト−レスポンスからデータ型や値の範囲まで反映するOAS仕様書の自動生成機能は提案されていない。様々なプロトコルに対応可能なカスタマイズ性を担保した機能も述べられていない。
このような背景に鑑みて本発明がなされたのであり、本発明は、APIリクエスト−レスポンスをもとに低コストでREST APIの標準仕様書であるOAS仕様書を作成できるAPI仕様書生成装置、API仕様書生成方法、およびプログラムを提供することを課題とする。
前記した課題を解決するため、請求項1に記載の発明は、既存APIの仕様を変換して標準仕様のOAS仕様書を生成するAPI仕様書生成装置であって、前記OAS仕様書を作成する際の雛形ファイルをあらかじめ設定するOAS雛形設定部と、前記OAS仕様書で用いるパラメータ設定ロジックを記述する挿入値ファイルを設定する挿入値ファイル設定部と、APIリクエストとそのレスポンスをキャプチャするAPIリクエスト−レスポンスキャプチャ部と、キャプチャしたAPIリクエスト−レスポンスデータと、前記挿入値ファイルの参照結果とを前記雛形ファイルに反映してパラメータを設定し、設定した前記パラメータをもとに前記OAS仕様書を作成するOAS作成部と、を備えることを特徴とするAPI仕様書生成装置とした。
また、請求項4に記載の発明は、既存APIの仕様を変換して標準仕様のOAS仕様書を生成するAPI仕様書生成装置が、前記OAS仕様書を作成する際の雛形ファイルをあらかじめ設定するステップと、前記OAS仕様書で用いるパラメータ設定ロジックを記述する挿入値ファイルを設定するステップと、APIリクエストとそのレスポンスをキャプチャするステップと、キャプチャしたAPIリクエスト−レスポンスデータと、前記挿入値ファイルの参照結果とを前記雛形ファイルに反映してパラメータを設定し、設定した前記パラメータをもとに前記OAS仕様書を作成するステップと、を実行することを特徴とするAPI仕様書生成方法とした。
また、請求項5に記載の発明は、既存APIの仕様を変換して標準仕様のOAS仕様書を生成するAPI仕様書生成装置としてのコンピュータを、前記OAS仕様書を作成する際の雛形ファイルをあらかじめ設定するOAS雛形設定手段、前記OAS仕様書で用いるパラメータ設定ロジックを記述する挿入値ファイルを設定する挿入値ファイル設定手段、APIリクエストとそのレスポンスをキャプチャするAPIリクエスト−レスポンスキャプチャ手段、キャプチャしたAPIリクエスト−レスポンスデータと、前記挿入値ファイルの参照結果とを前記雛形ファイルに反映してパラメータを設定し、設定した前記パラメータをもとに前記OAS仕様書を作成するOAS作成手段、として機能させるためのプログラムとした。
このようにすることで、APIリクエスト−レスポンスをもとに低コストでデータ型や値の範囲まで反映するOAS仕様書を作成できる。また、各種プロトコルの値から、OASにパラメータをどのように設定するかを記述するパラメータ設定ロジックも、システム運用者にてカスタマイズ可能である。さらに、独自パラメータやHTTP以外のプロトコルもOAS仕様書の対象にすることができる。
また、請求項2に記載の発明は、一意にOAS仕様書へパラメータを登録するパラメータ設定辞書を格納するパラメータ設定辞書格納部をさらに備え、前記OAS作成部は、キャプチャしたAPIリクエスト−レスポンスデータと、前記挿入値ファイルの参照結果とを前記雛形ファイルに反映して暫定パラメータを設定するとともに、キャプチャしたAPIリクエスト−レスポンスデータと、前記パラメータ設定辞書を参照して、前記暫定パラメータを、当該暫定パラメータよりも精度の高いパラメータに設定し、設定した前記パラメータをもとに前記OAS仕様書を作成することを特徴とする請求項1に記載のAPI仕様書生成装置とした。
このようにすることで、APIリクエスト−レスポンスとAPIパラメータ設定辞書を参照して、一意に特定不可であるパラメータも高精度で設計可能となる。このため、OAS仕様書の作成および修正稼働を削減することができる。
また、請求項3に記載の発明は、アプリケーションプログラミングインタフェースを設計する際のルールを記述したAPI記述ルールを入力するAPI記述ルール入力部と、前記API記述ルールを解析してチェックポリシーを作成するAPI記述ルール解析部と、前記チェックポリシーに基づいて前記API記述ルールに準拠していることをチェックする準拠性チェック処理部と、をさらに備え、前記OAS作成部は、作成した前記OAS仕様書を前記準拠性チェック処理部に送り、前記準拠性チェック処理部は、前記OAS作成部から送られた前記OAS仕様書をもとに、前記API記述ルールへの準拠性をチェックすることを特徴とする請求項1に記載のAPI仕様書生成装置とした。
このようにすることで、生成されたAPI仕様書について、特定のAPI記述ルールへの準拠性も確認することができる。
本発明によれば、APIリクエスト−レスポンスをもとに低コストでOAS仕様書を作成できるAPI仕様書生成装置、API仕様書生成方法、およびプログラムを提供することができる。
本発明の実施形態に係るAPI仕様書生成装置の概要を示す図であり、(a)はその全体構成図、(b)はその動作説明図である。 本発明の実施形態に係るAPI仕様書生成装置を示す構成図である。 本発明の実施形態に係るAPI仕様書生成装置のOAS雛形設定部が設定する雛形ファイルの一例を示す図である。 本発明の実施形態に係るAPI仕様書生成装置の挿入値ファイル設定部が設定する挿入値ファイルの一例を示す図である。 本発明の実施形態に係るAPI仕様書生成装置のOAS作成部の動作を示す図である。 本発明の実施形態に係るAPI仕様書生成装置のOAS作成部の動作により作成されたOAS仕様書を示す図である。 本発明の実施形態に係るAPI仕様書生成装置のSIPをHTTP形式のREST APIに変換する場合、OAS雛形設定部が設定する雛形ファイルの一例を示す図である。 本発明の実施形態に係るAPI仕様書生成装置の挿入値ファイル設定部が設定する挿入値ファイルの一例を示す図である。 本発明の実施形態に係るAPI仕様書生成装置が規定する注釈様式に従って、構文的記述ルールを記載した例を示す図である。 本発明の実施形態に係るAPI仕様書生成装置のAPI記述ルールを表にして示す図である。 本発明の実施形態に係るAPI仕様書生成装置が規定する記述様式に従って、メソッド使用ルールを記載した例を示す図である。 従来技術のOAS仕様書作成を説明する図であり、(a)は全体構成図、(b)は動作説明図である。 図12の簡易OASフォーマット作成ツールで用いるAPIリクエストおよびAPIレスポンスの一例を示す図である。
以下、図面を参照して本発明を実施するための形態(以下、「本実施形態」という)におけるAPI仕様書生成装置等について説明する。
(原理説明)
図1は、本発明の実施形態に係るAPI仕様書生成装置の概要を示す図であり、(a)はその全体構成図、(b)はその動作説明図である。図12および図13と同一構成部分には同一符号を付している。
API仕様書生成装置100は、既存APIの仕様を自動で標準仕様の仕様書に変換し生成する。
図1(a)に示すように、API仕様書生成装置100は、REST API10と既存機能12間で送受信されるAPIリクエスト−レスポンスをキャプチャ可能に設置される(詳細後記)。
図1(b)の符号dに示すように、キャプチャブロック#1でキャプチャされたAPIリクエスト−レスポンス126は、OAS生成処理ブロック#2に出力される。
OAS生成処理ブロック#2は、OAS雛形設定部111(後記)、挿入値ファイル設定部112(後記)、パラメータ設定辞書123(後記)を有する。
OAS生成処理ブロック#2では、パラメータ設定ロジックを含むAPIガイドラインファイルに従い、あらかじめ用意してある雛形ファイル121に挿入値ファイル122の参照結果とパラメータを反映する(図1(b)の符号e参照)。
また、一意に特定不可であるパラメータについては、例えばAPIガイドラインファイルのパラメータ設定ロジックに従い、パラメータ設定辞書123を参照の上、パラメータを設定する(図1(b)の符号f参照)。
API仕様書生成装置100は、特定のAPI記述ルールへの準拠性も確認する。すなわち、図1(b)の符号gに示すように、OAS生成処理ブロック#2で生成したOASをOAS出力ブロック#3に出力し、特定のAPI記述ルールへの準拠性も確認する(後記)。
(実施形態)
図2は、本発明の実施形態に係るAPI仕様書生成装置を示す構成図である。
図2に示すように、既存APL11は、REST API10およびL2(layer2)スイッチ15を介してAPI提供装置(既存機能)20に接続される。既存APL11は、既存API開発者1が使用するものとする。L2スイッチ15は、パケットのMAC(Media Access Control)アドレスにより中継先を判断して中継動作を行う。
API仕様書生成装置100は、REST API10とAPI提供装置20間に設置される。API仕様書生成装置100は、既存APIの仕様を自動で標準仕様の仕様書に変換し生成する。
API仕様書生成装置100は、既存API開発者2からの入力を受付けるAPIリクエスト−レスポンスIF部101と、APIリクエスト−レスポンスキャプチャ部102と、OAS作成部110と、OAS雛形設定部111と、挿入値ファイル設定部112と、パラメータ設定辞書格納部113と、を備える。上記OAS雛形設定部111、挿入値ファイル設定部112およびパラメータ設定辞書格納部113は、API記述ルール作成者/システム運用者3からの入力を受付ける。
また、API仕様書生成装置100は、API記述ルール設定方式入力部103と、API記述ルール作成者/システム運用者3からの入力を受付けるAPI記述ルール入力部104と、API記述ルール作成者/システム運用者4からの入力を受付けるAPI記述ルール解析部105と、チェックポリシー設定部106と、既存API開発者5からの入力を受付けるAPI設計エディタ部107と、準拠性チェック処理部108と、を備える。
なお、既存API開発者1、既存API開発者2、および既存API開発者5は、同一の開発者であってもよい。API記述ルール作成者/システム運用者3およびAPI記述ルール作成者/当該システム運用者4は、同一の運用者であってもよい。
APIリクエスト−レスポンスIF部101は、既存API開発者2からの入力を変換してAPI提供装置20に送信するととともに、APIリクエスト−レスポンスキャプチャ部102に該当APIリクエスト−レスポンスのデータ取込みを設定する。なお、API提供装置20は、APIリクエスト−レスポンスIF部101からの送信に対する応答を返す。
なお、上記APIリクエスト−レスポンスのデータは、具体的にはAPIリクエスト−レスポンス126(図13参照)の各パラメータの値(詳細後記)である。
APIリクエスト−レスポンスキャプチャ部102は、APIリクエストとそのレスポンスであるAPIリクエスト−レスポンス126(図13参照)をキャプチャする。図2では、APIリクエスト−レスポンスキャプチャ部102は、L2スイッチ15により中継されたAPIリクエスト−レスポンス126をキャプチャし、キャプチャしたAPIリクエスト−レスポンス126をOAS作成部110に出力する。
OAS作成部110は、キャプチャしたAPIリクエスト−レスポンス126(図13参照)データと、挿入値ファイル122(図4参照)の参照結果とを雛形ファイル121(図3参照)に反映してパラメータを設定し、設定したパラメータをもとにOAS仕様書127(図6参照)を作成する。
なお、APIリクエスト−レスポンス126のパラメータに応じて変更する部分は、置換箇所を示す変換タグを記載する。
また、OAS作成部110は、キャプチャしたAPIリクエスト−レスポンスデータと、挿入値ファイル122の参照結果とを雛形ファイル121に反映して暫定パラメータを設定するとともに、キャプチャしたAPIリクエスト−レスポンスデータと、パラメータ設定辞書123(図5参照)を参照して、暫定パラメータをより精度の高いパラメータに設定し、設定したパラメータをもとにOAS仕様書127を作成する。
OAS作成部110は、APIリクエスト−レスポンス126(図13参照)のみでは一意に決められず、パラメータ設定辞書123の参照が必要とされる領域は、該当するOASタグ部分に辞書への参照命令を記載する。
なお、挿入値ファイル122に記載するパラメータ設定ロジックの書き方によっては、HTTP以外のプロトコルもOAS仕様書127に自動反映することも可能である(後記図8参照)。
OAS雛形設定部111は、OAS仕様書127(図6参照)を作成する際のOAS雛形(雛形ファイル121)(図3参照)をあらかじめ設定する。雛形ファイル121は、置換箇所を変換タグとして記載する。
挿入値ファイル設定部112は、OAS仕様書127(図6参照)で用いるパラメータ設定ロジックを記述する挿入値ファイル122(図4参照)を設定する。挿入値ファイル122は、雛形ファイル121に反映するパラメータ設定ロジックを有する。挿入値ファイル設定部112は、雛形ファイル121(図3参照)記載の変換タグに対応した挿入値ファイル122を設定する。
パラメータ設定辞書格納部113は、一意にOAS仕様書127(図6参照)へ反映が難しいパラメータを登録するパラメータ設定辞書123(図5参照)を格納する。
API記述ルール設定方式入力部103は、API記述ルールの記述様式を入力する。例えば、API記述ルール作成者/システム運用者4がAPI記述ルールの記述様式をAPI記述ルール設定方式入力部103にあらかじめ入力する。
API記述ルール入力部104は、アプリケーションプログラミングインタフェースを設計する際のルールを記述したAPI記述ルールを入力する。
API記述ルール入力部104は、API記述ルール作成者/システム運用者3が、アノテーションや正規表現等の一般的なプログラミング言語、または、API仕様書生成装置100が指定するAPI特有の記述様式に従って記載されたAPI記述ルールを入力するインポート(import)部である。上記API記述ルールは、API仕様書生成装置100が指定する記述様式に従って記載されたSyntax的なAPI記述ルール、および、Semantic的なAPI記述ルールである。具体的には、上記Syntax的なエラーは、構文/文法的なエラーである。上記Semantic的なエラーは、API仕様の設計に関する領域において、使用しているメソッドがCRUD(Create,Read,Update,Delete)の考え方に従っているか等意味の違いや矛盾によって生じるエラーである。
また、API記述ルール入力部104は、API記述ルール作成者/システム運用者3が、チェックポリシーを記載したソースコード等を入力する。
API記述ルール解析部105は、API記述ルールを解析してチェックポリシーを作成する。詳細には、API記述ルール解析部105は、API記述ルール設定方式入力部103により事前に規定された記述様式に従い、API記述ルールを解析してチェックポリシーを作成する。作成したチェックポリシーは、チェックポリシー設定部106に送られる。
チェックポリシー設定部106は、API記述ルール作成者/システム運用者4が、チェックポリシーに間違いのないことを確認する。チェックポリシーに間違いのないことが確認されると、チェックポリシー設定部106は、チェックポリシーを準拠性チェック処理部108に反映する。
API設計エディタ部107は、既存API開発者5が、API設計書を入力する。
準拠性チェック処理部108は、チェックポリシーに基づいてAPI記述ルールに準拠していることをチェックする。準拠性チェック処理部108は、OAS作成部110から送られたOAS仕様書127をもとに、API記述ルールへの準拠性をチェックする。
具体的には、準拠性チェック処理部108は、既存API開発者5からAPI設計書の入力を受け付け、入力されたAPI設計書をチェックポリシーに基づいてチェックし、チェックポリシーに沿っていない非準拠箇所を既存API開発者5に通知する。
API記述ルール作成者/システム運用者3は、API設計エディタ部107を用いてAPI設計書を入力してもよいし、API仕様書生成装置100の提供するAPIを用いてAPI設計書を送付してもよい。API記述ルール作成者/システム運用者3がAPI設計エディタ部107を用いたときは、API設計書の非準拠箇所をAPI設計エディタ部107に出力し、既存API開発者5に通知する。
なお、図2のAPIリクエスト−レスポンスIF部101およびAPIリクエスト−レスポンスキャプチャ部102は、図1のキャプチャブロック#1に対応する。図2のOAS作成部110、OAS雛形設定部111、挿入値ファイル設定部112、およびパラメータ設定辞書格納部113は、図1のOAS生成処理ブロック#2に対応する。図2のAPI記述ルール設定方式入力部103、API記述ルール入力部104、API記述ルール解析部105、チェックポリシー設定部106、API設計エディタ部107、および準拠性チェック処理部108、図1のOAS出力ブロック#3に対応する。
<雛形ファイル121>
図3は、OAS雛形設定部111が設定する雛形ファイル121の一例を示す図である。
雛形ファイル121は、APIリクエスト−レスポンス126(図13参照)の各パラメータの値に応じてOAS仕様書127(図6参照)を作成するための雛形である。雛形ファイル121は、置換箇所を変換タグとして記載する。
雛形ファイル121には、APIリクエスト−レスポンス126のパラメータに応じて変更する部分に、置換箇所を示す変換タグが記載される。図3に示す雛形ファイル121は、「!!」に示す置換箇所(図3の太文字参照)が変換タグとして記載される。
<挿入値ファイル122>
図4は、挿入値ファイル設定部112が設定する挿入値ファイル122の一例を示す図である。
挿入値ファイル122は、雛形ファイル121(図3参照)に反映するパラメータ設定ロジックを有する。なお、一意に特定できないパラメータ領域は、パラメータ設定辞書123を参照するなどして決定する。
図4の符号wに示すように、
・host.yaml
host: [Host: ]は、リクエスト−レスポンスのHost:ヘッダの内容を、そのまま反映する。
図4の符号xに示すように、
・basePath.yaml
basePath: [Request URI: - Host: ]は、リクエストパラメータの各パラメータを参照してどのようにOASへ反映するかを設定する。本実施形態では、Request URLヘッダの値からHost:ヘッダの値を差し引いた値をbasePath: として設定するロジックを記載する。
図4の符号yに示すように、
・type_1.yaml
[Member Key: SELECT ParameterType FROM ParameterDB WHERE [Member Key] = ParameterDB.Word ]は、データ型等、APIリクエスト−レスポンスの単純解析では、一意に特定不可なパラメータについて、パラメータ設定辞書を参照して設定する。
<パラメータ設定辞書123>
図5は、OAS作成部110の動作を示す図である。OAS作成部110の動作については、後記し、パラメータ設定辞書123の構成例について述べる。
パラメータ設定辞書123は、一意にOAS仕様書127(図6参照)へ反映が難しいパラメータを登録する。
図5に示すように、パラメータ設定辞書123は、Word(項目)に対応するType(型)、format(フォーマット)、maximum(最大値)、およびminimum(最小値)を有する。Wordは、例えば、Birthday、Telephone、Creditである。Typeは、例えば、integer(整数)である。formatは、int32(整数32bit)、int64(整数64bit)である。
図5に示すパラメータ設定辞書123で、例えば、Word「Birthday」が検索されると、Type 「integer」、format「int32」、maximum「99999999」、およびminimum「00」が参照される。Word「Birthday」の場合、maximumは、yyyymmdd(西暦4桁,月2桁,日2桁)が設定され、minimumは、dd(日2桁)が設定されている。このため、minimumに「00」(2桁)より大きいパラメータは設定できない。
同様に、Word「Telephone」が検索されると、Type 「integer」、format「int32」、maximum「−(設定なし)」、およびminimum「0000000000」(8桁)が参照される。
OAS作成部110は、パラメータ設定辞書123を参照することで、リクエスト−レスポンスの解析のみでは機械的に設定できないパラメータついても、高い精度で適切なパラメータを設定することが可能となる(後記)。
以下、上述のように構成されたAPI仕様書生成装置100のAPI仕様書生成方法について説明する。
[全体動作]
STEP1
図2の符号hに示すように、既存APL11からAPI提供装置20に対してAPIリクエストを送信する。
STEP2
APLリクエストがない場合、図2の符号iに示すように、既存API開発者2は、既存API11にAPIリクエストを送信するために必要な情報(URL,リクエストパラメータ等)を入力する。既存API開発者2は、APIリクエストに対するレスポンス結果も確認する。
STEP3
図2の符号jに示すように、APIリクエスト−レスポンスキャプチャ部102は、L2スイッチ15により中継されたAPIリクエスト−レスポンス126(図13参照)をキャプチャする。
STEP4
図2の破線矢印および符号kに示すように、API記述ルール作成者/システム運用者3は、OAS雛形設定部111の雛形ファイル121、挿入値ファイル設定部112の挿入値ファイル122、パラメータ設定辞書格納部113のパラメータ設定辞書123について、手動により雛形ファイル121、挿入値ファイル122、パラメータ設定辞書123を充実化またはカスタマイズさせる。
STEP5
図2の符号lに示すように、OAS作成部110は、OAS雛形設定部111に設定された雛形ファイル121(図3参照)に、APIリクエスト−レスポンスキャプチャ部102でキャプチャされたAPIリクエスト−レスポンス126のキャプチャデータと挿入値ファイル設定部112の参照結果とを反映させる。
STEP6
図2の符号mに示すように、OAS作成部110は、一意にOASへ反映が難しいパラメータは、パラメータ設定辞書格納部113が格納するパラメータ設定辞書123(図5参照)を参照して、暫定的にパラメータを設定する。
STEP7
図2の符号nに示すように、API記述ルール作成者/システム運用者3は、API記述ルール入力部104に、アノテーションや正規表現等の一般的なプログラミング言語、または、API仕様書生成装置100が指定するAPI特有の記述様式に従って記載されたAPI記述ルールを入力する。API記述ルール作成者/システム運用者3は、API記述ルール設定方式入力部103(後記)で設定された記述様式に従ってAPI記述ルールを記載する。
上記API記述ルールは、API仕様書生成装置100が指定する記述様式に従って記載されたSyntax的なAPI記述ルール、および、Semantic的なAPI記述ルールである。具体的には、API記述ルールは、APIのリソース名、パラメータ名に使用してはいけない文字や文字列を規定したルール、およびAPIで使用するメソッドの使用用途を規定したルールなどである。メソッドの使用用途は、REST API10のメソッドが限定的な特徴を活かしてルールを規定できる。
また、API記述ルール作成者/システム運用者3は、チェックポリシーを記載したソースコード等を入力する。
STEP8
API記述ルール設定方式入力部103は、API記述ルールの記述様式を入力する。このAPI記述ルールの記述様式は、例えばAPI記述ルール作成者/システム運用者4があらかじめ入力する。
STEP9
図2の符号oに示すように、API記述ルール解析部105は、API記述ルール設定方式入力部103により事前に規定された記述様式に従い、API記述ルールを解析してチェックポリシーを決定する。決定されたチェックポリシーは、チェックポリシー設定部106に送られる。
STEP10
図2の符号pに示すように、API記述ルール作成者/システム運用者4は、チェックポリシー設定部106で、チェックポリシーに間違いのないことを確認する。チェックポリシーに間違いのないことが確認されると、チェックポリシー設定部106は、チェックポリシーを準拠性チェック処理部108に反映する(図2の符号q参照)。
STEP11
一方、図2の符号rに示すように、OAS作成部110は、作成したOASをAPI設計エディタ部107へ入力する。API設計エディタ部107は、OASとして作成された内容を表示する。
STEP12
図2の符号sに示すように、API設計エディタ部107は、OAS作成部110により作成されたOASを表示させ、既存API開発者5によるAPI設計書の設計および記載を支援する。
STEP12
図2の符号tに示すように、準拠性チェック処理部108は、既存API開発者5からAPI設計書(OAS)の入力を受け付け、入力されたAPI設計書(OAS)をチェックポリシーに基づいてチェックし、チェックポリシーに沿っていない非準拠箇所を既存API開発者5に通知する(図2の符号u参照)。既存API開発者5は、API設計エディタ部107を用いてAPI設計書(OAS)を入力する。
特に、図2の符号vに示すように、API設計エディタ部107を経由して、準拠性チェック処理部108にOASを送ることで、準拠性チェック処理部108は、特定のAPI記述ルールへの準拠性チェックも確認可能である。なお、特定のAPI記述ルールは、API記述ルール設定方式入力部103で入力されているAPI記述ルールの記述様式では準拠性チェックできないものを含む。
準拠性チェック処理部108は、既存API開発者5に特定のAPI記述ルールに準拠した設計内容を提案する(図2の符号u参照)。
[OAS作成部110動作]
図5を参照してOAS作成部110の動作を説明する。
OAS作成部110(図2参照)は、APIリクエスト−レスポンスキャプチャ部102(図2参照)でキャプチャされたAPIリクエスト−レスポンス126のデータをパラメータ設定ロジックに従い、挿入値ファイル122へ反映させる。
図5に示す挿入値ファイル122において、
・host.yaml「host:」「basePath:」は、パラメータ設定ロジックに設定されている。このため、図5の符号zに示すように、・host.yamlは、APIリクエスト124(図13参照)の host: petstore-api.herokuapp.comそのままとなる。同様に、・basePath.yamlは、basePath: /Petとなる。
OAS作成部110は、キャプチャしたAPIリクエスト−レスポンス126のデータと、挿入値ファイル122の参照結果とを雛形ファイル121に反映して暫定パラメータを設定する。
一方、「・name_1.yaml」「・type_1.yaml」「・format_1.yaml」は、パラメータ設定ロジックに設定されていない。このため、図5の符号a1に示すように、・host.yamlは、APIリクエスト−レスポンスの解析のみで機械的に設定できないパラメータ(一意に特定不可であるパラメータ)である。
この場合は、図5の符号b1に示すように、パラメータ設定辞書123を参照して、「・name_1.yaml」「・type_1.yaml」「・format_1.yaml」に対して各パラメータを設定し、挿入値ファイル122に設計を反映する。
上述したように、図5に示すパラメータ設定辞書123は、Wordに対応するType、format、maximum、およびminimumを有する。図5の符号b1に示すように、Word「Birthday」が検索されると、Type 「integer」、format「int32」、maximum「99999999」、およびminimum「00」が参照され、挿入値ファイル122に設定される。すなわち、
・name_1.yaml
birthday:
・type_1.yaml
type: integer
・format_1.yaml
format: int32
が挿入値ファイル122に設定される。
OAS作成部110は、キャプチャしたAPIリクエスト−レスポンス126のデータと、パラメータ設定辞書123を参照して、暫定パラメータをより精度の高いパラメータに設定する。すなわち、一意にOASへ反映が難しいパラメータは、パラメータ設定辞書123を参照して、より精度の高いパラメータを設定する。
図6は、図5のOAS作成部110の動作により作成されたOAS仕様書127を示す図である。
図6に示すOAS仕様書127は、雛形ファイル121(図3参照)に挿入値ファイル122(図5参照)を挿入済のファイルを示す。
図6中の太文字は、APIリクエスト−レスポンス126のキャプチャデータとパラメータ設定辞書123を参照し、雛形ファイル121(図3参照)へ設計を反映した箇所である。
例えば、図6に示すOAS仕様書127は、雛形ファイル121(図3参照)をもとに、
swagger: '2.0'
info:
version: 1.0.0
title: hogehoge
description: |
を記述し、この記述に続いて、図5に示す挿入値ファイル122から下記パラメータを挿入する。
host: petstore-api.herokuapp.com
basePath: /pet
schemes:
- http
consumes:
- application/json
produces:
- application/json
paths:
/:
続いて、図5に示す挿入値ファイル122から下記パラメータを挿入する。
post:
parameters:
雛形ファイル121(図3参照)をもとに、
− name: A
を記述し、この記述に続いて、図5に示す挿入値ファイル122から下記パラメータを挿入する。
in: body
雛形ファイル121(図3参照)をもとに、
description: hogehogeschema:
を記述し、この記述に続いて、図5に示す挿入値ファイル122から下記パラメータを挿入する。
$ref: '#/definitions/A'
雛形ファイル121(図3参照)をもとに、
required: true
を記述し、この記述に続いて、図5に示す挿入値ファイル122から下記パラメータを挿入する。
responses:
200:
雛形ファイル121(図3参照)をもとに、
description: hogehoge
を記述する。
以上で、「post:」の記述とその挿入値ファイル122からのパラメータ挿入を終え、「name: A」についての定義を記述する。すなわち、
雛形ファイル121(図3参照)をもとに、
definitions:
A:
を記述し、この記述に続いて、図5に示す挿入値ファイル122から下記パラメータを挿入する。
type: object
続いて、雛形ファイル121(図3参照)をもとに、
properties:
を記述し、この記述に続いて、図5に示す挿入値ファイル122から下記パラメータを挿入する。
name:
type: string
birthday:
type: integer
format: int32
上記パラメータは、一意にOASへ反映が難しいパラメータであり、パラメータ設定辞書123を参照して設定される。
以上、HTTP形式のREST APIを用いたOAS作成部110の動作について説明した。
[変形例]
次に、変形例として、SIP(Session Initiation Protocol)をOAS変換ロジックに変える場合について説明する。
<雛形ファイル121A>
図7は、SIPをHTTP形式のREST APIに変換する場合、OAS雛形設定部111が設定する雛形ファイル121Aの一例を示す図である。図3の雛形ファイル121と同一部分には、同一パラメータを付している。
雛形ファイル121Aは、APIリクエスト−レスポンス126(図13参照)の各パラメータの値に応じてOAS仕様書を作成するための雛形である。
雛形ファイル121Aには、APIリクエスト−レスポンス126のパラメータに応じて変更する部分に、置換箇所を示す変換タグが記載される。
OAS作成部110(図5参照)は、雛形ファイル121A記載の変換タグに対応した挿入値ファイル122A(図8参照)を設定する。
図7に示す雛形ファイル121Aは、
前記図3に示す雛形ファイル121の下記パラメータ
properties:
!!Conversion name_1:
!!Conversion type_1:
!!Conversion format_1
!!Conversion name_2:
!!Conversion type_2:
!!Conversion format_2:
が、下記パラメータ
properties:
from
!!Conversion type_1:
!!Conversion format_1
to
!!Conversion type_2:
!!Conversion format_2:
に置き換えられている。
<挿入値ファイル122A>
図8は、挿入値ファイル設定部112が設定する挿入値ファイル122Aの一例を示す図である。
挿入値ファイル122Aは、雛形ファイル121A(図7参照)に反映するパラメータロジックを有するファイルである。なお、一意に特定できないパラメータ領域は、パラメータ設定辞書を参照するなどして決定する。
図8に示す挿入値ファイル122Aは、
・host.yaml
host: [REGISTER sip: ]
・method.yaml
− [REGESTER: post]
− [INVITE: get]
・type_1.yaml
[To: ]
を有する。
図8の符号c1に示すように、
・host.yaml
host: [REGISTER sip: ]は、網内プロキシに登録要求をするREGESTERメソッドによるリクエストのSIP URIをHTTPのhost部とする場合の例である。
図8の符号d1に示すように、
・method.yaml
− [REGESTER: post]
− [INVITE: getは、SIP REGESTERをHTTPのPOSTメソッド、SIP INVITEをGETメソッドとする場合の例である。
図8の符号e1に示すように、
・type_1.yaml
[To: ]は、SIP INVITEのTo:ヘッダの値を反映する場合の例である。
以上、SIPをHTTP形式のREST APIに変換する場合、SIPリクエスト−レスポンスの値を基に、HTTPプロトコルへ変換するロジックを反映する。これにより、OAS形式の仕様書を自動生成することが可能になる。
[構文的記述ルールの規定例]
次に、構文的記述ルールの規定例について説明する。
図9は、API仕様書生成装置100が規定する注釈様式に従って、構文的記述ルールを記載した例を示す図である。
図9の例では、APIのリソース名、パラメータ名に、アプリが動作する上でバグの原因となるおそれのある文字「%」,「:」,「¥」,「¥¥」, 「\(バックスラッシュ)」の使用を禁止するルールが記載されている。
具体的には、図9の符号f1に示すように、“@NGcheck\Resource”は、API仕様書生成装置100が規定した記述様式であり、API設計書内の各APIのリソース名内部で特定の記述等がされた場合にエラーを出力するルール(ポリシー)である。また、図9の符号g1に示すように、“@NGcheck\Parameters”は、各APIのパラメータ名に特定の文字、文字列が存在する場合にエラー情報を出力するルール(ポリシー)である。また、図9の符号h1に示すように、使用してはいけない文字、文字列が正規表現等で記述されている。
このように、APIのリソース名、パラメータ名に、アプリ動作する上でバグの原因となるおそれのある「%」, 「:」, 「\」, 「\」の使用を禁止する場合は、API仕様書生成装置100が指定する記述様式を用いて正規表現等を活用して記述したファイルをAPI記述ルール入力部104(図2参照)にインポートする(図9の符号i1参照)。
準拠性チェック処理部108(図2参照)は、記述された内容に従って、準拠性チェックポリシーを規定する。
図9の符号j1に示すように、API設計エディタ部107(図2参照)は、記載されたAPI仕様を、事前に規定されたチェックポリシーに従って準拠性確認をし、その結果を既存API開発者5に通知する。通知形式は、API設計エディタ部107がリアルタイムに通知を行う。
[メソッド使用ルールの規定例]
次に、メソッド使用ルールの規定例について説明する。
図10は、API記述ルールを表にして示す図である。図10に示す表は、API記述ルールとして各メソッドの使用用途を規定する。
図10の表に示すように、CRUD(Create,Read,Update,Delete)毎に、メソッド名(POST,GET,PUT,DELETE)と、対応する用途を規定する。
API記述ルールとして各メソッドの使用用途を図10の表に規定したと仮定する。例えば、リソースを新規に作成/更新/削除するようなAPIにもかかわらず、「GET」を用いているかを確認する。図10の表で規定したルールに反して用途に合っていないメソッドが使われている場合にエラーを出力する。
図11は、API仕様書生成装置100が規定する記述様式に従って、メソッド使用ルールを記載した例を示す図である。
図11の符号k1に示すように、“@NGcheck\Api”は、一つのエンドポイント毎のAPIに関する設計(概要やメソッド)において、特定の条件に当てはまる記述が存在する場合にエラーを出力するルール(ポリシー)である。図11の符号l1に示すように、API仕様書生成装置100が規定した記述様式でエラーを出力するポリシーを記載する。例えば、APIの説明文(description部)に「更新」、「create」、「追加」、「add」、「削除」、「delete」という記載があり、かつ、GETメソッドを使用している場合、エラーを出力する。より具体的には、API設計書において、ある行にGETメソッドを使用することが記載されており、その後の行のAPIの説明文に“Create”の記述がある場合を想定する。このAPI設計書は、リソースを新規に作成するAPIにもかかわらずGETを用いている。したがって、このAPI設計書をAPI仕様書生成装置100に入力した場合、用途に合っていないメソッドが使われている旨のエラー情報が出力される。
API仕様書生成装置100が規定する記述様式に沿った設計、または、一般的なプログラミング言語で、エラー検出のロジックを組むことで、ルール違反したメソッドの使用をチェックすることが可能になる。
以上説明したように、本実施形態のAPI仕様書生成装置100(図1参照)は、OAS仕様書127を作成する際の雛形ファイル121をあらかじめ設定するOAS雛形設定部111と、OAS仕様書127で用いるパラメータ設定ロジックを記述する挿入値ファイル122を設定する挿入値ファイル設定部112と、APIリクエストとそのレスポンスをキャプチャするAPIリクエスト−レスポンスキャプチャ部102と、キャプチャしたAPIリクエスト−レスポンスデータと、挿入値ファイル122の参照結果とを雛形ファイル121に反映してパラメータを設定し、設定したパラメータをもとにOAS仕様書127を作成するOAS作成部110と、を備える。
この構成により、APIリクエスト−レスポンス126をもとに低コストでデータ型や値の範囲まで反映するOAS仕様書127を作成できる。また、各種プロトコルの値から、OASにパラメータをどのように設定するかを記述するパラメータ設定ロジックも、システム運用者にてカスタマイズ可能である。さらに、独自パラメータやHTTP以外のプロトコルもOAS仕様書の対象にすることができる。
本実施形態では、API仕様書生成装置100は、一意にOAS仕様書127へ反映が難しいパラメータを登録するパラメータ設定辞書123を格納するパラメータ設定辞書格納部113を備え、OAS作成部110は、キャプチャしたAPIリクエスト−レスポンス126のデータと、挿入値ファイル122の参照結果とを雛形ファイル121に反映して暫定パラメータを設定するとともに、キャプチャしたAPIリクエスト−レスポンス126のデータと、パラメータ設定辞書を参照して、暫定パラメータをより精度の高いパラメータに設定し、設定したパラメータをもとにOAS仕様書127を作成する。
このようにすることで、APIリクエスト−レスポンス126とAPIパラメータ設定辞書123を参照して、一意に特定不可であるパラメータも高精度で設計可能となる。このため、OAS仕様書127の作成および修正稼働を削減することができる。
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中に示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行するためのソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、IC(Integrated Circuit)カード、SD(Secure Digital)カード、光ディスク等の記録媒体に保持することができる。また、本明細書において、時系列的な処理を記述する処理ステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)をも含むものである。
10 REST API
11 既存APL
15 L2スイッチ
20 API提供装置(既存機能)
100 API仕様書生成装置
101 APIリクエスト−レスポンスIF部
102 APIリクエスト−レスポンスキャプチャ部(APIリクエスト−レスポンスキャプチャ手段)
103 API記述ルール設定方式入力部
104 API記述ルール入力部
105 API記述ルール解析部
106 チェックポリシー設定部
107 API設計エディタ部
108 準拠性チェック処理部
110 OAS作成部(OAS作成手段)
111 OAS雛形設定部(OAS雛形設定手段)
112 挿入値ファイル設定部(挿入値ファイル設定手段)
113 パラメータ設定辞書格納部
121,121A 雛形ファイル
122,122A 挿入値ファイル
123 パラメータ設定辞書
124 APIリクエスト
125 APIレスポンス
126 APIリクエスト−レスポンス
127 OAS仕様書

Claims (5)

  1. 既存API(Application Program Interface)の仕様を変換して標準仕様のOAS(Open API spec)仕様書を生成するAPI仕様書生成装置であって、
    前記OAS仕様書を作成する際の雛形ファイルをあらかじめ設定するOAS雛形設定部と、
    前記OAS仕様書で用いるパラメータ設定ロジックを記述する挿入値ファイルを設定する挿入値ファイル設定部と、
    APIリクエストとそのレスポンスをキャプチャするAPIリクエスト−レスポンスキャプチャ部と、
    キャプチャしたAPIリクエスト−レスポンスデータと、前記挿入値ファイルの参照結果とを前記雛形ファイルに反映してパラメータを設定し、設定した前記パラメータをもとに前記OAS仕様書を作成するOAS作成部と、を備える
    ことを特徴とするAPI仕様書生成装置。
  2. 一意にOAS仕様書へパラメータを登録するパラメータ設定辞書を格納するパラメータ設定辞書格納部をさらに備え、
    前記OAS作成部は、
    キャプチャしたAPIリクエスト−レスポンスデータと、前記挿入値ファイルの参照結果とを前記雛形ファイルに反映して暫定パラメータを設定するとともに、
    キャプチャしたAPIリクエスト−レスポンスデータと、前記パラメータ設定辞書を参照して、前記暫定パラメータを、当該暫定パラメータよりも精度の高いパラメータに設定し、設定した前記パラメータをもとに前記OAS仕様書を作成する
    ことを特徴とする請求項1に記載のAPI仕様書生成装置。
  3. アプリケーションプログラミングインタフェースを設計する際のルールを記述したAPI記述ルールを入力するAPI記述ルール入力部と、
    前記API記述ルールを解析してチェックポリシーを作成するAPI記述ルール解析部と、
    前記チェックポリシーに基づいて前記API記述ルールに準拠していることをチェックする準拠性チェック処理部と、をさらに備え、
    前記OAS作成部は、
    作成した前記OAS仕様書を前記準拠性チェック処理部に送り、
    前記準拠性チェック処理部は、
    前記OAS作成部から送られた前記OAS仕様書をもとに、前記API記述ルールへの準拠性をチェックする
    ことを特徴とする請求項1に記載のAPI仕様書生成装置。
  4. 既存APIの仕様を変換して標準仕様のOAS仕様書を生成するAPI仕様書生成装置が、
    前記OAS仕様書を作成する際の雛形ファイルをあらかじめ設定するステップと、
    前記OAS仕様書で用いるパラメータ設定ロジックを記述する挿入値ファイルを設定するステップと、
    APIリクエストとそのレスポンスをキャプチャするステップと、
    キャプチャしたAPIリクエスト−レスポンスデータと、前記挿入値ファイルの参照結果とを前記雛形ファイルに反映してパラメータを設定し、設定した前記パラメータをもとに前記OAS仕様書を作成するステップと、を実行する
    ことを特徴とするAPI仕様書生成方法。
  5. 既存APIの仕様を変換して標準仕様のOAS仕様書を生成するAPI仕様書生成装置としてのコンピュータを、
    前記OAS仕様書を作成する際の雛形ファイルをあらかじめ設定するOAS雛形設定手段、
    前記OAS仕様書で用いるパラメータ設定ロジックを記述する挿入値ファイルを設定する挿入値ファイル設定手段、
    APIリクエストとそのレスポンスをキャプチャするAPIリクエスト−レスポンスキャプチャ手段、
    キャプチャしたAPIリクエスト−レスポンスデータと、前記挿入値ファイルの参照結果とを前記雛形ファイルに反映してパラメータを設定し、設定した前記パラメータをもとに前記OAS仕様書を作成するOAS作成手段、
    として機能させるためのプログラム。
JP2018148615A 2018-08-07 2018-08-07 Api仕様書生成装置、api仕様書生成方法、およびプログラム Pending JP2020024567A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018148615A JP2020024567A (ja) 2018-08-07 2018-08-07 Api仕様書生成装置、api仕様書生成方法、およびプログラム
PCT/JP2019/030228 WO2020031845A1 (ja) 2018-08-07 2019-08-01 Api仕様書生成装置、api仕様書生成方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018148615A JP2020024567A (ja) 2018-08-07 2018-08-07 Api仕様書生成装置、api仕様書生成方法、およびプログラム

Publications (1)

Publication Number Publication Date
JP2020024567A true JP2020024567A (ja) 2020-02-13

Family

ID=69414186

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018148615A Pending JP2020024567A (ja) 2018-08-07 2018-08-07 Api仕様書生成装置、api仕様書生成方法、およびプログラム

Country Status (2)

Country Link
JP (1) JP2020024567A (ja)
WO (1) WO2020031845A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111399900A (zh) * 2020-03-10 2020-07-10 山东汇贸电子口岸有限公司 一种基于python与正则表达式的API文档自动生成方法及系统
US20220035600A1 (en) * 2019-05-17 2022-02-03 Google Llc API Specification Generation

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9954746B2 (en) * 2015-07-09 2018-04-24 Microsoft Technology Licensing, Llc Automatically generating service documentation based on actual usage
JP6733473B2 (ja) * 2016-09-30 2020-07-29 富士通株式会社 情報処理装置、仕様書作成方法及び仕様書作成プログラム
US9936005B1 (en) * 2017-07-28 2018-04-03 Kong Inc. Systems and methods for distributed API gateways

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220035600A1 (en) * 2019-05-17 2022-02-03 Google Llc API Specification Generation
CN111399900A (zh) * 2020-03-10 2020-07-10 山东汇贸电子口岸有限公司 一种基于python与正则表达式的API文档自动生成方法及系统
CN111399900B (zh) * 2020-03-10 2023-04-07 山东汇贸电子口岸有限公司 一种基于python与正则表达式的API文档自动生成方法及系统

Also Published As

Publication number Publication date
WO2020031845A1 (ja) 2020-02-13

Similar Documents

Publication Publication Date Title
CN100399323C (zh) 用于检验扩展标记语言文件的有效性的装置和方法
US11048682B2 (en) Custom lightning connect adapter for google sheets web-based spreadsheet program
US9734044B2 (en) Automatic test case generation
US9594802B2 (en) Graphical modeling of database query statements
US8561088B2 (en) Registering network applications with an API framework
US20070067512A1 (en) Method, system and software arrangement for processing a device support file for a field device
US20070198457A1 (en) Accessing and manipulating data in a data flow graph
CN114981775B (zh) 用于api综合管理的基于云的api元数据管理方法及系统
WO2020031845A1 (ja) Api仕様書生成装置、api仕様書生成方法、およびプログラム
Bojinov RESTful Web API Design with Node. js 10: Learn to create robust RESTful web services with Node. js, MongoDB, and Express. js
US10606569B2 (en) Declarative configuration elements
KR100762712B1 (ko) 규칙기반의 전자문서 변환방법 및 그 시스템
Bojinov RESTful Web API Design with Node. js
CN111510483B (zh) 芯片测试中不同网络域之间的配置同步系统、方法及装置
US11144287B2 (en) Compile time validation of programming code
JP2019028723A (ja) 設計確認装置及び設計確認方法
US11115279B2 (en) Client server model for multiple document editor
JP2008210214A (ja) 情報処理装置、通信制御処理関数追加方法、及び、通信制御処理関数追加プログラム
US8825686B2 (en) Expression evaluation over multiple data models
Barakat et al. IDLGen: Automated Code Generation for Inter-parameter Dependencies in Web APIs
CN110633158B (zh) 在过程建模中实现同步可编辑信号的方法、系统和介质
Kelly Aggregating Private and Public Web Archives Using the Mementity Framework
Troelsen et al. RESTful Services with ASP. NET Core
CN114500679B (zh) can协议转换方法、装置、电子设备和存储介质
CN115659471B (zh) 基于物模型及模型编码的数据融合方法