(57)【要約】【課題】卸サービスの連携実行装置に備わる卸サービスのＡＰＩアダプタを効率的に作成する。【解決手段】ＡＰＩアダプタ作成装置１００は、開発担当者による、ＡＰＩアダプタが提供するアダプタ化ＡＰＩの内部処理が呼び出す卸サービスＡＰＩの実行順序の設定、卸サービスＡＰＩの要求パラメータの取得元となるアダプタ化ＡＰＩの要求パラメータの設定、および、卸サービスＡＰＩの応答パラメータの反映先となるアダプタ化ＡＰＩの応答パラメータの設定を受け付ける。ＡＰＩアダプタ作成装置１００は、受け付けた設定に基づいて、ソースコードを生成する。【選択図】図４
2020021374.tif 000002
【特許請求の範囲】
【請求項１】
複数の卸サービスを組み合わせた連携サービスを構築する複数サービス連携実行装置に備わる、前記卸サービスのＡＰＩ（Application Program Interface）アダプタが提供するアダプタ化ＡＰＩを作成するＡＰＩアダプタ作成装置であって、
前記アダプタ化ＡＰＩの内部処理が呼び出す前記卸サービスのＡＰＩを示す卸サービスＡＰＩの実行順序の設定を受け付けるＡＰＩ実行順序設定部と、
前記卸サービスＡＰＩの要求パラメータの取得元となる前記アダプタ化ＡＰＩの要求パラメータの設定を受け付けるＡＰＩ要求パラメータ取得元設定部と、
前記卸サービスＡＰＩの応答パラメータの反映先となる前記アダプタ化ＡＰＩの応答パラメータの設定を受け付けるＡＰＩ応答パラメータ反映先設定部と、
前記実行順序の設定と、前記取得元の設定と、前記反映先の設定に基づいて、前記アダプタ化ＡＰＩのソースコードを生成するソースコード生成部と、
を備えることを特徴とするＡＰＩアダプタ作成装置。
【請求項２】
前記卸サービスＡＰＩの実行の実行条件の設定を受け付けるＡＰＩ実行条件設定部を、さらに備え、
前記ソースコード生成部は、前記実行条件の設定の内容を含む、前記アダプタ化ＡＰＩのソースコードを生成する
ことを特徴とする請求項１に記載のＡＰＩアダプタ作成装置。
【請求項３】
前記卸サービスＡＰＩの繰返し実行の繰返し条件の設定を受け付けるＡＰＩ繰返し条件設定部を、さらに備え、
前記ソースコード生成部は、前記繰返し条件の設定の内容を含む、前記アダプタ化ＡＰＩのソースコードを生成する
ことを特徴とする請求項１に記載のＡＰＩアダプタ作成装置。
【請求項４】
前記卸サービスＡＰＩの要求パラメータの指定を受け付けると、当該要求パラメータと同じ名称の前記アダプタ化ＡＰＩの要求パラメータを取得元と設定し、前記卸サービスＡＰＩの応答パラメータの指定を受け付けると、当該応答パラメータと同じ名称の前記アダプタ化ＡＰＩの応答パラメータを反映先と設定するＡＰＩ要求応答パラメータ設計支援部を、さらに備え、
前記ソースコード生成部は、前記ＡＰＩ要求応答パラメータ設計支援部が設定した前記取得元および反映先の設定の内容を含む、前記アダプタ化ＡＰＩのソースコードを生成する
ことを特徴とする請求項１〜３のいずれか１項に記載のＡＰＩアダプタ作成装置。
【請求項５】
複数の卸サービスを組み合わせた連携サービスを構築する複数サービス連携実行装置に備わる、前記卸サービスのＡＰＩアダプタが提供するアダプタ化ＡＰＩを作成するＡＰＩアダプタ作成装置のＡＰＩアダプタ作成方法であって、
前記アダプタ化ＡＰＩの内部処理が呼び出す前記卸サービスのＡＰＩを示す卸サービスＡＰＩの実行順序の設定を受け付けるステップと、
前記卸サービスＡＰＩの要求パラメータの取得元となる前記アダプタ化ＡＰＩの要求パラメータの設定を受け付けるステップと、
前記卸サービスＡＰＩの応答パラメータの反映先となる前記アダプタ化ＡＰＩの応答パラメータの設定を受け付けるステップと、
前記実行順序の設定と、前記取得元の設定と、前記反映先の設定に基づいて、前記アダプタ化ＡＰＩのソースコードを生成するステップと、
を実行することを特徴とするＡＰＩアダプタ作成方法。
【請求項６】
コンピュータを請求項１〜４のいずれか１項に記載のＡＰＩアダプタ作成装置として機能させるためのＡＰＩアダプタ作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数サービス連携実行装置に備わるＡＰＩアダプタを効率的に作成するＡＰＩアダプタ作成装置、ＡＰＩアダプタ作成方法およびＡＰＩアダプタ作成プログラムに関する。
【背景技術】
【０００２】
近年、新たなデジタルサービスを創出するにあたり、全てを自社の設備で構築するのではなく、他事業者のデジタルサービス（卸サービス）を利用してエンドユーザにデジタルサービスを提供する、Ｂ２Ｂ２Ｘ（Business to Business to X）モデルの通信サービスが一般化しつつある。
【０００３】
Ｂ２Ｂ２Ｘモデルのサービスの普及に伴って、複数の卸サービスを組み合わせた連携サービスを構築、運用するための、複数サービス連携実行装置の重要性が増している。新たな卸サービスの登場、および既存サービスの仕様変更が頻繁に行われるため、連携サービスの事業者は、低コスト・短期間で新しい卸サービスおよび既存サービスの仕様変更に追随することが求められる。
【０００４】
事業者は、ＨＴＴＰ（HyperText Transfer Protocol）上のＲＥＳＴ  ＡＰＩ（REpresentational State Transfer Application Program Interface）（以下、単にＡＰＩとも記す）としてサービスを提供している。また、事業者は、ＡＰＩの名称、アクセス先のＵＲＬ（Uniform Resource Locator）やＨＴＴＰメソッド、パラメータなどのＡＰＩ仕様を規定して公開している。
【０００５】
連携サービスを提供する事業者は、卸サービスのＡＰＩ仕様を参照して、卸サービスの組み合わせ方法を設計し、連携サービスを構築、提供する装置（複数サービス連携実行装置）を開発する。新しい卸サービスおよび既存サービスの仕様変更に容易に対応可能な複数サービス連携実行装置のアーキテクチャとして、非特許文献１，２に記載の技術がある。また、非特許文献１，２には、異なる卸サービスの仕様差分を吸収することで、新しい卸サービスや仕様変更にも容易に対応可能とするＡＰＩアダプタが提案されている。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】武直樹, 他5名, "Web APIアダプタ開発容易化に関する一考察," 第14回ネットワークソフトウェア(NWS)研究会, 電子情報通信学会, 2017年10月19日.
【非特許文献２】武直樹, 他5名, "APIアダプタ開発におけるSwagger Codegenの適用性," 電子情報通信学会総合大会講演, B-14-13, 電子情報通信学会, 2018年3月20日〜23日.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
非特許文献１および非特許文献２には、ＡＰＩアダプタの一部の構成要素（モジュール）について、市中ライブラリの活用、共通ライブラリ化、および卸サービスＡＰＩの仕様に基づくソースコードの自動生成により、ＡＰＩアダプタの開発が容易化できることが記載されている。しかしながら、ＡＰＩアダプタには、人手による設計と実装が必要なモジュールが残っており、さらなる開発の容易化が望まれていた。
【０００８】
このような背景に鑑みて本発明がなされたのであり、本発明は、複数サービス連携実行装置に備わる卸サービスのＡＰＩアダプタを効率的に作成することができるＡＰＩアダプタ作成装置、ＡＰＩアダプタ作成方法、およびＡＰＩアダプタ作成プログラムを提供することを課題とする。
【課題を解決するための手段】
【０００９】
前記した課題を解決するため、請求項１に記載の発明は、複数の卸サービスを組み合わせた連携サービスを構築する複数サービス連携実行装置に備わる、前記卸サービスのＡＰＩ（Application Program Interface）アダプタが提供するアダプタ化ＡＰＩを作成するＡＰＩアダプタ作成装置であって、前記アダプタ化ＡＰＩの内部処理が呼び出す前記卸サービスのＡＰＩを示す卸サービスＡＰＩの実行順序の設定を受け付けるＡＰＩ実行順序設定部と、前記卸サービスＡＰＩの要求パラメータの取得元となる前記アダプタ化ＡＰＩの要求パラメータの設定を受け付けるＡＰＩ要求パラメータ取得元設定部と、前記卸サービスＡＰＩの応答パラメータの反映先となる前記アダプタ化ＡＰＩの応答パラメータの設定を受け付けるＡＰＩ応答パラメータ反映先設定部と、前記実行順序の設定と、前記取得元の設定と、前記反映先の設定に基づいて、前記アダプタ化ＡＰＩのソースコードを生成するソースコード生成部と、を備えることを特徴とするＡＰＩアダプタ作成装置とした。
【００１０】
また、請求項５に記載の発明は、複数の卸サービスを組み合わせた連携サービスを構築する複数サービス連携実行装置に備わる、前記卸サービスのＡＰＩアダプタが提供するアダプタ化ＡＰＩを作成するＡＰＩアダプタ作成装置のＡＰＩアダプタ作成方法であって、前記アダプタ化ＡＰＩの内部処理が呼び出す前記卸サービスのＡＰＩを示す卸サービスＡＰＩの実行順序の設定を受け付けるステップと、前記卸サービスＡＰＩの要求パラメータの取得元となる前記アダプタ化ＡＰＩの要求パラメータの設定を受け付けるステップと、前記卸サービスＡＰＩの応答パラメータの反映先となる前記アダプタ化ＡＰＩの応答パラメータの設定を受け付けるステップと、前記実行順序の設定と、前記取得元の設定と、前記反映先の設定に基づいて、前記アダプタ化ＡＰＩのソースコードを生成するステップと、を実行することを特徴とするＡＰＩアダプタ作成方法とした。
【００１１】
このようにすることで、ＡＰＩアダプタ作成装置は、ＡＰＩアダプタの開発担当者が規定した実行順序に従った卸サービスＡＰＩの呼出しや、アダプタ化ＡＰＩの要求パラメータからの卸サービスＡＰＩの要求パラメータの取得、卸サービスの応答パラメータからのアダプタ化ＡＰＩの応答パラメータへの反映を含んだソースコードを生成することが可能となる。このため、開発担当者は、ソースコードを記述する必要がなくなり、ロジックの検討に集中することができるようになる。結果として、ＡＰＩアダプタの開発期間が短くなり、新しい卸サービスや仕様変更にも短期間で対応可能となる。
【００１２】
請求項２に記載の発明は、前記卸サービスＡＰＩの実行の実行条件の設定を受け付けるＡＰＩ実行条件設定部を、さらに備え、前記ソースコード生成部が、前記実行条件の設定の内容を含む、前記アダプタ化ＡＰＩのソースコードを生成することを特徴とする請求項１に記載のＡＰＩアダプタ作成装置とした。
【００１３】
このようにすることで、ＡＰＩアダプタ装置は、条件付きの卸サービスＡＰＩの呼出しを含むソースコードを生成することができる。
【００１４】
請求項３に記載の発明は、前記卸サービスＡＰＩの繰返し実行の繰返し条件の設定を受け付けるＡＰＩ繰返し条件設定部を、さらに備え、前記ソースコード生成部が、前記繰返し条件の設定の内容を含む、前記アダプタ化ＡＰＩのソースコードを生成することを特徴とする請求項１に記載のＡＰＩアダプタ作成装置とした。
【００１５】
このようにすることで、ＡＰＩアダプタ装置は、繰返しの卸サービスＡＰＩの呼出しを含むソースコードを生成することができる。
【００１６】
請求項４に記載の発明は、前記卸サービスＡＰＩの要求パラメータの指定を受け付けると、当該要求パラメータと同じ名称の前記アダプタ化ＡＰＩの要求パラメータを取得元と設定し、前記卸サービスＡＰＩの応答パラメータの指定を受け付けると、当該応答パラメータと同じ名称の前記アダプタ化ＡＰＩの応答パラメータを反映先と設定するＡＰＩ要求応答パラメータ設計支援部を、さらに備え、前記ソースコード生成部は、前記ＡＰＩ要求応答パラメータ設計支援部が設定した前記取得元および反映先の設定の内容を含む、前記アダプタ化ＡＰＩのソースコードを生成することを特徴とする請求項１〜３のいずれか１項に記載のＡＰＩアダプタ作成装置とした。
【００１７】
このようにすることで、開発担当者は、請求項１に記載のＡＰＩアダプタ装置を用いる場合より少ない操作で要求パラメータと応答パラメータの設定が可能となり、ＡＰＩアダプタの開発がより効率的になる。
【００１８】
請求項６に記載の発明は、コンピュータを請求項１〜４のいずれか１項に記載のＡＰＩアダプタ作成装置として機能させるためのＡＰＩアダプタ作成プログラムとした。
【００１９】
このようにすることで、一般的なコンピュータを用いて、請求項１〜４のいずれか１項に記載のＡＰＩアダプタ装置を実現させることができる。
【発明の効果】
【００２０】
本発明によれば、複数サービス連携実行装置に備わる卸サービスのＡＰＩアダプタを効率的に作成することができるＡＰＩアダプタ作成装置、ＡＰＩアダプタ作成方法、およびＡＰＩアダプタ作成プログラムを提供することができる。
【図面の簡単な説明】
【００２１】
【図１】本実施形態に係る複数サービス連携実行装置を含むネットワークシステムの構成を示す図である。
【図２】本実施形態に係るＡＰＩアダプタ部の構成を示す図である。
【図３】本実施形態にＡＰＩ呼出しロジック部の開発手順を説明するためのフローチャートである。
【図４】本実施形態に係るＡＰＩアダプタ作成装置の全体構成を示す図である。
【図５】本実施形態に係る卸サービスＡＰＩ仕様データベースのデータ構成を示す図である。
【図６】本実施形態に係るＡＰＩ実行順序データベースのデータ構成を示す図である。
【図７】本実施形態に係るＡＰＩパラメータデータベースのデータ構成を示す図である。
【図８】本実施形態に係るＡＰＩアダプタ作成装置が表示する実行順序設定画面を示す図である。
【図９】本実施形態に係るＡＰＩアダプタ作成装置が表示するパラメータ設定画面を示す図である。
【図１０】本実施形態に係るＡＰＩアダプタ作成装置が表示する、応答パラメータのパラメータ設定画面を示す図である。
【図１１】本実施形態に係るＡＰＩパラメータデータベースに含まれるレコードを説明するための図である。
【図１２】本実施形態に係るＡＰＩアダプタ作成装置が表示する、要求パラメータのパラメータ設定画面を示す図である。
【図１３】本実施形態に係るＡＰＩパラメータデータベースに含まれるレコードを説明するための図である。
【図１４】本実施形態に係るＡＰＩアダプタ作成装置が表示する実行順序設定画面を示す図である。
【図１５】本実施形態に係るＡＰＩアダプタ作成装置が表示する実行条件設定画面を示す図である。
【図１６】本実施形態に係るＡＰＩパラメータデータベースのレコードを説明するための図である。
【図１７】本実施形態に係るＡＰＩアダプタ作成装置が表示する実行順序設定画面を示す図である。
【図１８】本実施形態に係るＡＰＩアダプタ作成装置が表示する繰返し条件設定画面を示す図である。
【図１９】本実施形態に係るソースコード生成部が実行するソースコード生成処理を示すフローチャートである。
【図２０】本実施形態に係るソースコード生成部が実行する本体処理出力処理を示すフローチャートである。
【図２１】本実施形態に係るソースコード生成部が生成したソースコードである。
【発明を実施するための形態】
【００２２】
以下では、ＡＰＩアダプタを備える複数サービス連携実行装置の全体構成、ＡＰＩアダプタの構成およびＡＰＩアダプタ開発の課題を説明した後に、本発明を実施するための形態（実施形態）におけるＡＰＩアダプタ作成装置（後記する図４参照）について説明する。
【００２３】
≪複数サービス連携実行装置の構成≫
図１は、本実施形態に係る複数サービス連携実行装置９００を含むネットワークシステムの構成を示す図である。複数サービス連携実行装置９００は、連携実行装置本体部９１０およびＡＰＩアダプタ部９２０Ａ〜９２０Ｃを備える。
【００２４】
サービス事業者９８０は、複数サービス連携ＡＰＩ９７０を介して、連携オーダ９５０を複数サービス連携実行装置９００に発行し、連携サービス９６５を受け取る。連携オーダ９５０は、ネットワークＡサービス９５１Ａと、クラウドＢサービス９５１Ｂと、アプリケーションＣサービス（図１では、アプリＣサービスと記載）９５１Ｃとが連携した連携サービス９６５を要求するメッセージである。
【００２５】
連携実行装置本体部９１０は、受信した連携オーダ９５０に含まれるサービスを、卸サービス事業者から受け取って、連携させて、連携サービス９６５としてサービス事業者９８０に提供する。連携実行装置本体部９１０は、不図示のカタログ（設定ファイル）を参照して、連携オーダ９５０に含まれるネットワークＡサービス９５１Ａに対応する単体オーダ９５５Ａと、クラウドＢサービス９５１Ｂに対応する単体オーダ９５５Ｂと、アプリケーションＣサービス９５１Ｃに対応する単体オーダ９５５Ｃとを生成する。
【００２６】
連携実行装置本体部９１０は、単体オーダ９５５Ａ〜９５５Ｃをパラメータとして、連携実行装置本体部ＡＰＩ９７３を介して卸サービスを要求する。連携実行装置本体部９１０は、サービス９６２Ａ〜９６２Ｃを受け取って、連携させることで連携サービス９６５を生成し、サービス事業者９８０に提供する。
【００２７】
ＡＰＩアダプタ部９２０Ａは、単体オーダ９５５Ａを受け付け、卸サービス事業者Ａ９８５Ａに卸サービスＡＰＩ９７５Ａを介して、サービスＡ要求９５６Ａを送信して、サービスＡ９６１Ａを受け取り、サービス９６２Ａを連携実行装置本体部９１０に提供する。
【００２８】
ＡＰＩアダプタ部９２０Ｂは、単体オーダ９５５Ｂを受け付け、卸サービス事業者Ｂ９８５Ｂに卸サービスＡＰＩ９７５Ｂを介して、サービスＢ要求９５６Ｂを送信して、サービスＢ９６１Ｂを受け取り、サービス９６２Ｂを連携実行装置本体部９１０に提供する。
【００２９】
ＡＰＩアダプタ部９２０Ｃは、単体オーダ９５５Ｃを受け付け、卸サービス事業者Ｃ９８５Ｃに卸サービスＡＰＩ９７５Ｃを介して、サービスＣ要求９５６Ｃを送信して、サービスＣ９６１Ｃを受け取り、サービス９６２Ｃを連携実行装置本体部９１０に提供する。
【００３０】
卸サービスＡＰＩ９７５Ａ〜９７５Ｃは、卸サービス事業者Ａ９８５Ａ、卸サービス事業者Ｂ９８５Ｂおよび卸サービス事業者Ｃ９８５Ｃがそれぞれ独自に提供するＡＰＩである。ＡＰＩアダプタ部９２０Ａ〜９２０Ｃは、卸サービスＡＰＩ９７５Ａ〜９７５Ｃの差分を吸収し、共通の連携実行装置本体部ＡＰＩ９７３を連携実行装置本体部９１０に提供している。
【００３１】
このため、新たな卸サービスが出現し、その卸サービスＡＰＩが提供されれば、対応するＡＰＩアダプタ部を開発して、卸サービスをカタログに登録すれば、連携実行装置本体部９１０を変更することなく、複数サービス連携実行装置９００は、新たな卸サービスを含んだ連携サービスを提供することができるようになる。このため、新たな卸サービスに対応する時間やコストは、ＡＰＩアダプタ部９２０Ａ〜９２０Ｃの開発の時間やコストに依存することになり、開発の容易性が求められている。
【００３２】
≪ＡＰＩアダプタ部の構成≫
図２は、本実施形態に係るＡＰＩアダプタ部９２０の構成を示す図である。ＡＰＩアダプタ部９２０は、オーダ受付部９２１、ＡＰＩ呼出しロジック部９２２および卸サービスＡＰＩ実行部９２３を備える。
オーダ受付部９２１は、連携実行装置本体部９１０からの単体オーダ９５５を受け付け、オーダ内容を取得する。また、オーダ受付部９２１は、連携実行装置本体部９１０への応答処理を行う。
【００３３】
ＡＰＩ呼出しロジック部９２２は、単体オーダ９５５で要求されるサービスを取得するために、卸サービス事業者９８５が提供する個別サービスを、ＡＰＩを介して呼び出す（実行する）。この際、ＡＰＩ呼出しロジック部９２２は、卸サービス事業者９８５が提供する個別のサービスの実行順序に従って、個別サービスの要求パラメータを生成し、ＡＰＩを介してサービスを呼び出して、応答パラメータを処理する。
卸サービスＡＰＩ実行部９２３は、ＡＰＩ呼出しロジック部９２２の呼出しに応じて、ＨＴＴＰ要求を組み立てて卸サービス事業者９８５に送信し、応答を受信してＡＰＩ呼出しロジック部９２２に出力する。
【００３４】
オーダ受付部９２１は、共通ライブラリ化することで、効率的な開発が可能となっている。また、卸サービスＡＰＩ実行部９２３は、個別サービスのＡＰＩ仕様に基づいたソースコードの自動生成ツールを用いることで、効率的な開発が可能となっている（非特許文献２参照）。しかしながら、ＡＰＩ呼出しロジック部９２２については、人手による設計と実装が必要であり、開発に要する時間とコストがかかっていた。
【００３５】
本発明は、ＡＰＩ呼出しロジック部９２２の設計において、最低限の項目だけを人手で設定することで、ＡＰＩ呼出しロジック部９２２のソースコードを生成するものであり、効率的なＡＰＩアダプタ部９２０の開発を可能とする。
なお、以下の説明では、卸サービスＡＰＩを介して卸サービスを要求する（呼び出す）ことを、卸サービスと卸サービスＡＰＩとを同一視して、卸サービスＡＰＩを呼び出す（実行する）などとも記す。
【００３６】
≪ＡＰＩ呼出しロジック部の開発手順≫
図３は、本実施形態に係るＡＰＩ呼出しロジック部９２２の開発手順を説明するためのフローチャートである。図３および図２を参照しながら、開発担当者が、ＡＰＩアダプタ作成装置（後記する図４参照）を利用して行うＡＰＩ呼出しロジック部９２２の開発手順を説明する。
【００３７】
ステップＳ１０１において、開発担当者は、卸サービスのＡＰＩを理解する。詳しくは、開発担当者は、卸サービス事業者９８５が提供するＡＰＩの仕様を参照したり、市中のＡＰＩテストツールを利用したりして、仕様を確認（ＡＰＩの動作検証）しながら、卸サービスＡＰＩを理解する。
【００３８】
ステップＳ１０２において、開発担当者は、ＡＰＩ（連携実行装置本体部ＡＰＩ９７３として提供されるＡＰＩであり、ＡＰＩアダプタ部９２０がサポートするＡＰＩであって、開発対象のＡＰＩであり、アダプタ化ＡＰＩとも記す）のロジックを規定する。詳しくは、開発担当者は、アダプタ化ＡＰＩを決定し、アダプタ化ＡＰＩを機能させるために必要な、卸サービスの個別サービス（卸サービスＡＰＩ）の実行順序（後記する図８参照）や実行条件（後記する図１４、図１５参照）、繰返し条件（後記する図１７、図１８参照）を規定する（設定する）。
なお、以下では、アダプタ化ＡＰＩとその内部処理とを同一視して、アダプタ化ＡＰＩが卸サービス（卸サービスＡＰＩ）を呼び出す（実行する）とも記す。
【００３９】
ステップＳ１０３において、開発担当者は、パラメータを規定する。詳しくは、開発担当者は、個別サービスの要求パラメータの取得元となる単体オーダ９５５に含まれる要求パラメータ（後記する図９参照）、個別サービスの応答パラメータの反映先となるサービス９６２の応答パラメータ（後記する図１０参照）を規定する。
【００４０】
ステップＳ１０４において、開発担当者は、ＡＰＩアダプタ作成装置にＡＰＩ呼出しロジック部９２２のソースコード（後記する図２１参照）の生成を指示する。
ステップＳ１０５において、開発担当者は、ＡＰＩアダプタ作成装置にオーダ受付部９２１および卸サービスＡＰＩ実行部９２３を含めたＡＰＩアダプタ部９２０の実行ファイルの生成を指示する。
【００４１】
上記説明において、開発担当者が、ステップＳ１０１〜Ｓ１０５を順次行うように説明した。しかし、ステップＳ１０３の途中で卸サービスＡＰＩの理解が不足していたことが判明してステップＳ１０１，Ｓ１０２に戻ったり、実行ファイルを実行して動作に不具合が見つかってステップＳ１０２，Ｓ１０３に戻ったりしながら、アダプタ化ＡＰＩ（ＡＰＩアダプタ部９２０）を開発する。
【００４２】
≪ＡＰＩアダプタ装置の全体構成≫
図４は、本実施形態に係るＡＰＩアダプタ作成装置１００の全体構成を示す図である。図４を参照しながら、図３のステップＳ１０２〜Ｓ１０５で説明した、開発担当者がＡＰＩアダプタの開発に利用するＡＰＩアダプタ作成装置１００の構成を説明する。
【００４３】
ＡＰＩアダプタ作成装置１００は、制御部１１０、記憶部１２０および入出力部１３０を含んで構成される。入出力部１３０は、キーボードやマウスなどの入力装置（不図示）やディスプレイといった出力装置（不図示）から構成され、開発担当者が規定するアダプタ化ＡＰＩのロジックやパラメータを受け付けて、表示する。
【００４４】
制御部１１０は、ＣＰＵ（Central Processing Unit）から構成され、卸サービスＡＰＩ仕様参照部１１１、ＡＰＩ実行順序設定部１１２、ＡＰＩ実行条件設定部１１３、ＡＰＩ繰返し実行設定部１１４、ＡＰＩ要求パラメータ取得元設定部１１５、ＡＰＩ応答パラメータ反映先設定部１１６、ＡＰＩ要求応答パラメータ設計支援部１１７、ソースコード生成部１１８およびアダプタ生成部１１９を備える。
【００４５】
卸サービスＡＰＩ仕様参照部１１１は、卸サービスの標準形式で記述されたＡＰＩ仕様を読み込み、後記する記憶部１２０の卸サービスＡＰＩ仕様データベース２１０（図４では卸サービスＡＰＩ仕様ＤＢ（Database）と記載、後記する図５参照）に格納する。また、卸サービスＡＰＩ仕様参照部１１１は、読み込んだ卸サービスのＡＰＩ仕様に含まれるＡＰＩの名称やパラメータをディスプレイに表示する。
【００４６】
≪卸サービスＡＰＩ仕様データベース≫
図５は、本実施形態に係る卸サービスＡＰＩ仕様データベース２１０のデータ構成を示す図である。卸サービスＡＰＩ仕様データベース２１０は、卸サービス事業者９８５（図２参照）が提供する個別サービスのＡＰＩ仕様２２９から構成される。各々のＡＰＩ仕様２２９は、ＡＰＩ名称２１１、メソッド２１２、エンドポイント２１３、要求パラメータ２１４、応答パラメータ２１９および期待応答２２４の記述を含む。
【００４７】
ＡＰＩ名称２１１は、ＡＰＩの名称である。メソッド２１２は、ＡＰＩを呼び出すときのＨＴＴＰメソッドであり、ＧＥＴやＰＯＳＴなどがある。エンドポイント２１３は、ＡＰＩを呼び出すときのアドレスである。
要求パラメータ２１４は、例えば表形式のデータであって、１つの行（レコード）は、１つの要求パラメータを表し、オブジェクト２１５、パラメータ２１６および型２１７の列（属性）を含む。オブジェクト２１５は、レコードが示すパラメータを含むオブジェクトの名称である。パラメータ２１６はパラメータの名称である。型２１７は、パラメータの型である。レコード２１８は、「AuthRequest」オブジェクトに含まれ、型が「string」である「email」パラメータを表している。
【００４８】
応答パラメータ２１９は、例えば表形式のデータであって、１つのレコードは、１つの応答パラメータを表し、オブジェクト２２０、パラメータ２２１および型２２２の属性を含む。オブジェクト２２０、パラメータ２２１および型２２２の意味は、それぞれオブジェクト２１５、パラメータ２１６および型２１７と同様である。レコード２２３は、「AuthResponse」オブジェクトに含まれ、型が「string」である「apiToken」パラメータを表している。
【００４９】
期待応答２２４は、ＡＰＩを呼び出した後の正常な応答時のＨＴＴＰステータスコードを示す。
【００５０】
≪ＡＰＩアダプタ作成装置の制御部（ロジック設定）≫
図４に戻り、ＡＰＩ実行順序設定部１１２は、アダプタ化ＡＰＩが呼び出す卸サービスＡＰＩの順序を設定する。詳しくは、ＡＰＩ実行順序設定部１１２は、開発担当者が規定した卸サービスＡＰＩの呼出し順序（実行順序）（後記する図８参照）を、後記するＡＰＩ実行順序データベース２３０（図６参照）に反映する。
【００５１】
ＡＰＩ実行条件設定部１１３は、アダプタ化ＡＰＩが呼び出す卸サービスＡＰＩの実行条件を設定する。詳しくは、ＡＰＩ実行条件設定部１１３は、開発担当者が規定した条件付きで呼び出す卸サービスＡＰＩ（後記する図１４参照）やその実行条件（呼出し条件、後記する図１５参照）を、後記するＡＰＩ実行順序データベース２３０に反映する。
【００５２】
ＡＰＩ繰返し実行設定部１１４は、アダプタ化ＡＰＩが繰り返し呼び出す卸サービスＡＰＩを設定する。詳しくは、ＡＰＩ繰返し実行設定部１１４は、開発担当者が規定した、繰り返して呼び出す卸サービスＡＰＩ（後記する図１７参照）や繰返し条件（後記する図１８参照）を、後記するＡＰＩ実行順序データベース２３０に反映する。
【００５３】
≪ＡＰＩ実行順序データベース≫
図６は、本実施形態に係るＡＰＩ実行順序データベース２３０のデータ構成を示す図である。ＡＰＩ実行順序データベース２３０は、例えば表形式のデータであり、１つの行（レコード）は、１つのアダプタ化ＡＰＩにおける処理を示す。各レコードは、ＡＰＩ２３１、種別２３２、実行順序２３３、処理種別２３４、処理２３５および付加情報２３６の列（属性）を含む。
【００５４】
ＡＰＩ２３１は、アダプタ化ＡＰＩの名称である。種別２３２は、アダプタ化ＡＰＩの種別であり、「Ａ」で示される新規、「Ｍ」で示される変更、「Ｄ」で示される削除がある。１つのアダプタ化ＡＰＩは、ＡＰＩ２３１と種別２３２との組み合わせで特定される。
【００５５】
実行順序２３３は、１つのアダプタ化ＡＰＩにおける実行順序を示す。処理種別２３４は、レコードが示す処理の種別を示し、卸サービスＡＰＩの呼出しを示す「ＡＰＩ実行」と、条件付き実行や繰返し実行を示す「制御」とがある。
【００５６】
処理２３５は、処理内容を示す。処理種別２３４が「ＡＰＩ実行」である場合には、処理２３５は、呼び出す卸サービスのＡＰＩ名称（図５のＡＰＩ名称２１１参照）である。処理種別２３４が「制御」の場合には、処理２３５は、条件付き実行の開始と実行条件を示す「ｉｆ」、条件付き実行の終了を示す「ｅｎｄ  ｉｆ」、繰返し実行の開始と繰返し条件を示す「ｆｏｒ」、または、繰返し実行の終了を示す「ｅｎｄ  ｆｏｒ」である。
【００５７】
付加情報２３６は、実行条件または繰返し条件である。
レコード２４１，２４２は、種別２３２が「Ａ」（新規）の「XXX」というアダプタ化ＡＰＩは、最初に卸サービスのＡＰＩ「postAuth」を呼び出し（実行し）、次に「postNetwork」を呼び出すことを示している。
【００５８】
レコード２４３〜２４８は、種別２３２が「Ａ」の「YYY」というアダプタ化ＡＰＩは、最初に「postAuth」を呼び出し（レコード２４３参照）、続いて繰返し処理（レコード２４４参照）を行うことを示している。繰返し処理の条件は、レコード２４４の付加情報２３６に示される「productOrder.characteristic.network」である。詳しくは、「productOrder.characteristic.network」は、配列を示す変数であり、この配列の要素ごとに処理を繰り返す。繰り返す処理の内容は、レコード２４４の処理２３５である「ｆｏｒ」に対応する「ｅｎｄ  ｆｏｒ」（レコード２４８参照）までの処理であり、レコード２４５〜２４７で示される処理を繰り返す。
【００５９】
以下、レコード２４５〜２４７の処理を説明する。レコード２４５は、条件付き実行を示しており、その条件は付加情報２３６に示される「productOrder.characteristic.network.enable == true」である。「productOrder.characteristic.network.enable」で示させるパラメータの値が「true」ならば、処理を実行する。実行される処理の内容は、レコード２４５の処理２３５である「ｉｆ」に対応する「ｅｎｄ  ｉｆ」（レコード２４７参照）までの処理であり、レコード２４６で示される卸サービスＡＰＩ「postNetwork」を呼び出す処理である。
【００６０】
≪ＡＰＩアダプタ作成装置の制御部（パラメータ設定）≫
図４に戻り、ＡＰＩ要求パラメータ取得元設定部１１５は、呼び出される卸サービスＡＰＩの要求パラメータの取得元となるアダプタ化ＡＰＩの要求パラメータを設定する。詳しくは、ＡＰＩ要求パラメータ取得元設定部１１５は、開発担当者が規定した、卸サービスＡＰＩの要求パラメータの取得元となるアダプタ化ＡＰＩの要求パラメータ（図９参照）を、後記するＡＰＩパラメータデータベース２５０（図７参照）に反映する。
【００６１】
ＡＰＩ応答パラメータ反映先設定部１１６は、呼び出された卸サービスＡＰＩの応答パラメータの反映先となるアダプタ化ＡＰＩの応答パラメータを設定する。詳しくは、ＡＰＩ応答パラメータ反映先設定部１１６は、開発担当者が規定した、卸サービスＡＰＩの応答パラメータの反映先となるアダプタ化ＡＰＩの応答パラメータ（図１０参照）を、後記するＡＰＩパラメータデータベース２５０（図７参照）に反映する。
【００６２】
ＡＰＩ要求応答パラメータ設計支援部１１７は、開発担当者が規定することなく、卸サービスＡＰＩの要求パラメータの取得元や応答パラメータの反映先を設定する。詳しくは、ＡＰＩ要求応答パラメータ設計支援部１１７は、卸サービスＡＰＩの要求パラメータ２１４（図５参照）のオブジェクト２１５、パラメータ２１６、型２１７に基づいて、取得元となるアダプタ化ＡＰＩの要求パラメータを規定して、後記するＡＰＩパラメータデータベース２５０（図７参照）に反映する。また、ＡＰＩ要求応答パラメータ設計支援部１１７は、卸サービスＡＰＩの応答パラメータ２１９（図５参照）のオブジェクト２２０、パラメータ２２１、型２２２に基づいて、反映先となるアダプタ化ＡＰＩの応答パラメータを規定して、後記するＡＰＩパラメータデータベース２５０（図７参照）に反映する。
【００６３】
≪ＡＰＩパラメータデータベース≫
図７は、本実施形態に係るＡＰＩパラメータデータベース２５０のデータ構成を示す図である。ＡＰＩパラメータデータベースは、例えば表形式のデータであり、１つの行（レコード）は、卸サービスＡＰＩのパラメータを示し、ＡＰＩ２５１、種別２５２、処理２５３、パラメータ種別２５４、オブジェクト２５５、パラメータ２５６、入力元／反映先２５７の列（属性）を含む。
【００６４】
ＡＰＩ２５１と種別２５２とは、ＡＰＩ実行順序データベース２３０（図６参照）のＡＰＩ２３１と種別２３２とそれぞれ同様であり、レコードが示す卸サービスＡＰＩのパラメータが、どのアダプタ化ＡＰＩからの呼出しかを示す。処理２５３は、ＡＰＩ実行順序データベース２３０の処理２３５と実行順序２３３とに対応し、レコードが示すパラメータが、どの卸サービスＡＰＩの呼出しのパラメータかを示す。アダプタ化ＡＰＩが、同じ卸サービスＡＰＩを複数回呼び出す場合があるので、処理２３５と実行順序２３３との組み合わせで呼び出す卸サービスＡＰＩを特定する。
【００６５】
パラメータ種別２５４は、パラメータの種別であり、「要求」か「応答」である。オブジェクト２５５は、図５に示す要求パラメータ２１４のオブジェクト２１５または応答パラメータ２１９のオブジェクト２２０に対応する。また、パラメータ２５６は、要求パラメータ２１４のパラメータ２１６または応答パラメータ２１９のパラメータ２２１に対応する。オブジェクト２５５とパラメータ２５６とで、処理２５３に示される卸サービスＡＰＩのどのパラメータであるかを特定できる。
【００６６】
入力元／反映先２５７は、入力元または反映先となるアダプタ化ＡＰＩのパラメータである。
レコード２６１は、「Ａ」の「YYY」というアダプタ化ＡＰＩにおける実行順序が「１」の「postAuth」の卸サービスＡＰＩの呼出し（図６のレコード２４３参照）において、要求パラメータのオブジェクト２５５が「AuthRequest」であるパラメータ２５６「email」の入力元は、アダプタ化ＡＰＩの「accountInfo.email」であることを示している。
【００６７】
レコード２６２は、実行順序が「４」の「postNetwork」の卸サービスＡＰＩの呼出し（レコード２４６参照）において、要求パラメータのオブジェクト２５５が「Network」であるパラメータ２５６「name」の入力元は、アダプタ化ＡＰＩの「productOrder.characteristic.network.name」であることを示している。
【００６８】
レコード２６３は、実行順序が「１」の「postAuth」の卸サービスＡＰＩの呼出し（図６のレコード２４３参照）において、応答パラメータのオブジェクト２５５が「AuthResponse」であるパラメータ２５６「apiToken」の反映先は、アダプタ化ＡＰＩの「internalData.apiToken」であることを示している。
【００６９】
≪ＡＰＩアダプタ作成装置の制御部（その他）≫
図４に戻り、ソースコード生成部１１８は、ＡＰＩ実行順序データベース２３０およびＡＰＩパラメータデータベース２５０に格納された情報に基づいてＡＰＩ呼出しロジック部９２２のソースコード（後記する図２１参照）を生成する。このソースコードの生成処理は、後記する図１９と図２０を参照して説明する。アダプタ生成部１１９は、ソースコードをコンパイルして、オーダ受付部９２１および卸サービスＡＰＩ実行部９２３を含むＡＰＩアダプタ部９２０を生成する。
【００７０】
≪ＡＰＩアダプタ作成装置の記憶部≫
続いて、ＡＰＩアダプタ作成装置１００の記憶部１２０を説明する。記憶部１２０は、卸サービスＡＰＩ仕様データベース２１０、ＡＰＩ実行順序データベース２３０、ＡＰＩパラメータデータベース２５０、ＡＰＩアダプタソースコードリボジトリ２７０およびＡＰＩアダプタ実行ファイルリボジトリ２８０を備える。
【００７１】
卸サービスＡＰＩ仕様データベース２１０、ＡＰＩ実行順序データベース２３０、ＡＰＩパラメータデータベース２５０は説明済みである。ＡＰＩアダプタソースコードリボジトリ２７０は、ＡＰＩアダプタのソースコードのリボジトリであり、アダプタ生成部１１９は生成したソースコードをＡＰＩアダプタソースコードリボジトリ２７０に格納する。
【００７２】
ＡＰＩアダプタ実行ファイルリボジトリ２８０は、ＡＰＩアダプタの実行ファイルのリボジトリであり、アダプタ生成部１１９はコンパイルして生成したＡＰＩアダプタの実行ファイルをＡＰＩアダプタ実行ファイルリボジトリ２８０に格納する。
【００７３】
≪ロジックとパラメータの設定処理≫
以下、図８〜図１０、図１２、図１４〜図１５、図１７〜図１８に示されるＡＰＩアダプタ作成装置１００の画面、および、図６〜図７、図１１、図１３、図１６に示されるＡＰＩ実行順序データベース２３０とＡＰＩパラメータデータベース２５０とを参照して、図３のステップＳ１０２〜Ｓ１０３の処理を説明する。詳しくは、開発担当者が規定する（設定する）ロジックやパラメータの内容、および、ＡＰＩ実行順序設定部１１２、ＡＰＩ実行条件設定部１１３、ＡＰＩ繰返し実行設定部１１４、ＡＰＩ要求パラメータ取得元設定部１１５、ＡＰＩ応答パラメータ反映先設定部１１６、ＡＰＩ要求応答パラメータ設計支援部１１７の処理内容を説明する。
【００７４】
≪実行順序設定≫
図８は、本実施形態に係るＡＰＩアダプタ作成装置１００が表示する実行順序設定画面４００を示す図である。実行順序設定画面４００の左上には、卸サービスＡＰＩ仕様領域４１０が表示される。卸サービスＡＰＩ仕様領域４１０には、卸サービスＡＰＩのＡＰＩ名称アイコン４１１，４１２の一覧が表示される。なお、ＡＰＩ名称アイコンに表示される名称は、卸サービスのＡＰＩ仕様２２９（図５参照）のメソッド２１２とエンドポイント２１３とを連結したものとなっている。
【００７５】
実行順序設定画面４００の左下には、「ｉｆ」アイコン４２２と「ｆｏｒ」アイコン４２３を含む制御部品領域４２１が表示される。
実行順序設定画面４００の右側には、アダプタロジック領域４３１が表示される。アダプタロジック領域４３１は、新規アダプタロジック領域４３２と、変更アダプタロジック領域４３３と、削除アダプタロジック領域４３４とに分割される。新規アダプタロジック領域４３２と、変更アダプタロジック領域４３３と、削除アダプタロジック領域４３４とにおける開発担当者の操作、および、操作結果である実行順序のＡＰＩ実行順序データベース２３０（図６参照）への反映は、種別２３２，２５２を除いて領域によらず同様である。以下では、新規アダプタロジック領域４３２に関して説明する。
【００７６】
開発担当者は、卸サービスＡＰＩ仕様領域４１０にあるＡＰＩ名称アイコン４１１，４１２をドラッグして、新規アダプタロジック領域４３２にドロップすることで、卸サービスＡＰＩの呼出し順序（実行順序）を規定することができる。図８では、「POST/auth」、「POST/network」の順に呼び出す実行順序が規定されている。
【００７７】
ＡＰＩ実行順序設定部１１２は、新規アダプタロジック領域４３２に規定された実行順序を図６のレコード２４１，２４２として、ＡＰＩ実行順序データベース２３０に格納する。なお、ここでは、アダプタ化ＡＰＩの名称を「XXX」としている。以降の説明では、アダプタ化ＡＰＩの名称を「YYY」とする。
開発担当者が新規アダプタロジック領域４３２にあるＡＰＩ名称アイコンの右側にある「削除」ボタンをクリックすると、ＡＰＩ実行順序設定部１１２は、当該ＡＰＩ名称アイコンを削除し、ＡＰＩ実行順序データベース２３０にある該当するレコードを削除する。
【００７８】
≪要求パラメータ設定≫
図９は、本実施形態に係るＡＰＩアダプタ作成装置１００が表示するパラメータ設定画面４４０を示す図である。開発担当者が、実行順序設定画面４００（図８参照）の新規アダプタロジック領域４３２にあるＡＰＩ名称アイコン「POST/network」の右側にある「設定」ボタンをクリックすると、ＡＰＩアダプタ作成装置１００は、パラメータ設定画面４４０を表示する。
【００７９】
パラメータ設定画面４４０の左側には、入出力データ領域４５０が表示される。入出力データ領域４５０は、アダプタ化ＡＰＩの要求パラメータや応答パラメータに含まれるデータが、その木構造を含めて表示される領域である。開発担当者は、入出力データ領域４５０を編集したり、参照したりしながら、アダプタ化ＡＰＩの要求パラメータや応答パラメータを規定する。
【００８０】
パラメータ設定画面４４０の右側には、ＡＰＩ要求応答パラメータ設定領域４６０が表示される。ＡＰＩ要求応答パラメータ設定領域４６０の上部領域４６１には、パラメータ設定対象となる卸サービスＡＰＩの名称アイコン（図５では「POST/network」）と期待応答（図５では「２０１」と表示）が表示される。
上部領域４６１の下には、要求パラメータ設定テーブル４７０が表示される。要求パラメータ設定テーブル４７０は、表形式のデータであり、１つの行（レコード）は、１つの要求パラメータを示し、オブジェクト４７１、パラメータ４７２、型４７３、取得元４７４および値４７５の列（属性）を含む。ＡＰＩ要求パラメータ取得元設定部１１５は、卸サービスＡＰＩ仕様データベース２１０（図５参照）の要求パラメータ２１４を参照して、オブジェクト４７１、パラメータ４７２、型４７３を表示する。
【００８１】
開発担当者が、要求パラメータ設定テーブル４７０にある卸サービスＡＰＩの要求パラメータの取得元となる、入出力データ領域４５０に表示されるアダプタ化ＡＰＩの要求パラメータを指定すると、ＡＰＩ要求パラメータ取得元設定部１１５は、取得元４７４に取得元のパラメータを表示する。例えば、開発担当者が、レコード４７９に示される「name」パラメータの取得元は、入出力データ領域４５０に表示される「name」パラメータ４５３であると指定すると、ＡＰＩ要求パラメータ取得元設定部１１５は、「name」パラメータ４５３を含む「productOrder」パラメータ４５１を取得元４７４に表示する。さらに、ＡＰＩ要求パラメータ取得元設定部１１５は、この指定（設定）をＡＰＩパラメータデータベース２５０に反映する（図７のレコード２６２参照）。
【００８２】
なお、パラメータ設定画面４４０上での卸サービスＡＰＩの名称は、名称アイコン上の「POST/network」のように、卸サービスのＡＰＩ仕様２２９（図５参照）のメソッド２１２とエンドポイント２１３とを連結した名称となっている。一方、ＡＰＩパラメータデータベース２５０（図７参照）での卸サービスＡＰＩの名称は、処理２５３に含まれる卸サービスのＡＰＩ仕様２２９のＡＰＩ名称２１１となっている。
開発担当者は、要求パラメータの取得元を指定せず、要求パラメータの値を指定することもできる。このときには、値４７５に値を指定する。
【００８３】
≪応答パラメータ設定≫
図１０は、本実施形態に係るＡＰＩアダプタ作成装置１００が表示する、応答パラメータのパラメータ設定画面４４０を示す図である。図１０では、要求パラメータ設定テーブル４７０は、折り畳まれて表示されていない。トグルボタン４６４がクリックされると、展開されて要求パラメータ設定テーブル４７０（図９参照）が表示される。このときには、トグルボタン４６４の表示ラベルは「-」になっており、再度クリックされると、要求パラメータ設定テーブル４７０は折り畳まれて表示されない。
【００８４】
パラメータ設定画面４４０の左側の入出力データ領域４５０には、「productOrder」パラメータ４５１は折り畳まれて表示され、「product」パラメータ４５４が展開されて表示されている。
応答パラメータ設定テーブル４８０は、表形式のデータであり、１つの行（レコード）は、１つの応答パラメータを示し、オブジェクト４８１、パラメータ４８２、型４８３および反映先４８４の列（属性）を含む。ＡＰＩ応答パラメータ反映先設定部１１６は、卸サービスＡＰＩ仕様データベース２１０（図５参照）の応答パラメータ２１９を参照して、オブジェクト４８１、パラメータ４８２、型４８３を表示する。
【００８５】
開発担当者が、応答パラメータ設定テーブル４８０にある卸サービスＡＰＩの応答パラメータの反映先となる、入出力データ領域４５０に表示されるアダプタ化ＡＰＩの応答パラメータを指定すると、ＡＰＩ応答パラメータ反映先設定部１１６は、反映先４８４に反映先のパラメータを表示する。例えば、開発担当者が、レコード４８９に示される「id」パラメータの反映先は、入出力データ領域４５０に表示される「id」パラメータ４５５であると指定すると、ＡＰＩ応答パラメータ反映先設定部１１６は、「id」パラメータ４５５を含む「product」パラメータ４５４を反映先４８４に表示する。さらに、ＡＰＩ応答パラメータ反映先設定部１１６は、この指定（設定）をＡＰＩパラメータデータベース２５０に反映する（後記する図１１のレコード２６４参照）。
【００８６】
図１１は、本実施形態に係るＡＰＩパラメータデータベース２５０に含まれるレコード２６４を説明するための図である。レコード２６４は、実行順序が「４」の「postNetwork」の卸サービスＡＰＩの呼出し（図６のレコード２４６参照）において、応答パラメータのオブジェクト２５５が「Network」であるパラメータ２５６「id」の反映先が、アダプタ化ＡＰＩの「product.characteristic.network.id」であることを示している。
【００８７】
≪パラメータの自動設定≫
図９と図１０で説明したように、開発担当者は、卸サービスＡＰＩの要求パラメータの取得元や応答パラメータの反映先をＡＰＩアダプタ作成装置１００の画面上で指定することができる。卸サービスＡＰＩの要求パラメータの名称と、その取得元であるアダプタ化ＡＰＩの要求パラメータの名称とが一致している場合や、卸サービスＡＰＩの応答パラメータの名称と、その反映先であるアダプタ化ＡＰＩの応答パラメータの名称とが一致している場合には、開発担当者が指定しなくても取得元や反映先が設定可能である。
【００８８】
図１２は、本実施形態に係るＡＰＩアダプタ作成装置１００が表示する、要求パラメータのパラメータ設定画面４４０を示す図である。要求パラメータ設定テーブル４７０Ａには、「name」パラメータと「description」パラメータとが表示されている。開発担当者が、「name」パラメータと「description」パラメータと「productOrder」パラメータ４５１とを指定して、「自動」ボタン４５６をクリックすると、ＡＰＩ要求応答パラメータ設計支援部１１７は、「productOrder」パラメータ４５１の下位にあるパラメータと、要求パラメータ設定テーブル４７０Ａに含まれるパラメータで名称が一致しているパラメータ同士を探し出して、取得元４７４を設定して、ＡＰＩパラメータデータベース２５０に反映する（後記する図１３のレコード２６２，２６５参照）。
【００８９】
アダプタ化ＡＰＩの要求パラメータである「productOrder」パラメータ４５１の下位に「Network」オブジェクト４７１が規定されていなければ、ＡＰＩ要求応答パラメータ設計支援部１１７は、「productOrder.characteristic」の直下に「Network」オブジェクト４７１型のパラメータである「productOrder.characteristic.network」を規定し、取得元と設定して、ＡＰＩパラメータデータベース２５０に反映する。
ＡＰＩ要求応答パラメータ設計支援部１１７は、応答パラメータについても同様に、反映先を設定して、ＡＰＩパラメータデータベース２５０に反映する。
【００９０】
図１３は、本実施形態に係るＡＰＩパラメータデータベース２５０に含まれるレコード２６２，２６５を説明するための図である。レコード２６２は、図７で説明している。レコード２６５は、実行順序が「４」の「postNetwork」の卸サービスＡＰＩの呼出し（図６のレコード２４６参照）において、要求パラメータのオブジェクト２５５が「Network」であるパラメータ２５６「description」の取得元が、アダプタ化ＡＰＩの「productOrder.characteristic.network.description」であることを示している。
【００９１】
≪条件付き実行設定≫
図１４は、本実施形態に係るＡＰＩアダプタ作成装置１００が表示する実行順序設定画面４００Ａを示す図である。図１４を参照しながら、条件付き実行を規定する処理を説明する。
【００９２】
図８に示した新規アダプタロジック領域４３２では、「POST/auth」、「POST/network」の順序で卸サービスＡＰＩを呼び出すことが規定されていた。「POST/network」を条件付きで呼び出す（実行）する場合には、開発担当者は、「ｉｆ」アイコン４２２をドラッグして新規アダプタロジック領域４３２に表示される「POST/auth」と「POST/network」との間にドロップする。ＡＰＩ実行条件設定部１１３は、このドロップを検知して、図１４の新規アダプタロジック領域４３２Ａに表示されるように、「POST/network」のＡＰＩ名称アイコンを１段右側に移動して表示し、「POST/network」が条件付きで実行されることを示す。開発担当者が新規アダプタロジック領域４３２Ａにある「ｉｆ」アイコンの右側の「設定」ボタンをクリックすると、実行条件設定画面４９１（後記する図１５参照）に遷移して、実行条件を規定することができるようになる。
【００９３】
図１５は、本実施形態に係るＡＰＩアダプタ作成装置１００が表示する実行条件設定画面４９１を示す図である。実行条件設定画面４９１の右側には入出力データ領域４５０が表示され、左側には実行条件設定領域４９２が表示される。開発担当者は、実行条件設定領域４９２に、入出力データ領域４５０にあるパラメータや定数（例えば、真偽の値や数値、文字列）、比較演算子、数値演算子、関数などを組み合わせて、実行条件となる式を規定する。図１５では、実行条件として、パラメータ「productOrder.characteristic.network.enable」の値が真であることが規定されている。
【００９４】
図１６は、本実施形態に係るＡＰＩパラメータデータベース２５０のレコードを説明するための図である。開発担当者が、図１４と図１５に示されるアダプタ化ＡＰＩのロジックを規定した時点では、ＡＰＩ実行順序データベース２３０に、レコード２７１〜２７４が格納されている。新規アダプタロジック領域４３２Ａには、「POST/auth」、「ｉｆ」、「POST/network」の順に処理が規定されており、それぞれレコード２７１〜２７３に対応する。レコード２７４は、レコード２７２に示される条件付き実行の終了を示す。レコード２７２の付加情報に２３６には、実行条件設定領域４９２（図１５参照）に規定された実行条件の式が格納されている。
【００９５】
≪繰返し実行設定≫
図１７は、本実施形態に係るＡＰＩアダプタ作成装置１００が表示する実行順序設定画面４００Ｂを示す図である。図１７を参照しながら、繰返し実行を規定する処理を説明する。
【００９６】
図１４に示した新規アダプタロジック領域４３２Ａでは、「POST/auth」、条件付き実行の「POST/network」の順序で卸サービスＡＰＩを呼び出すことが規定されていた。条件付き実行の「POST/network」を繰り返して実行する場合には、開発担当者は、「ｆｏｒ」アイコン４２３をドラッグして新規アダプタロジック領域４３２Ａに表示される「POST/auth」と「ｉｆ」との間にドロップする。ＡＰＩ繰返し実行設定部１１４は、このドロップを検知して、図１７の新規アダプタロジック領域４３２Ｂに表示されるように、「ｉｆ」アイコンと「POST/network」のＡＰＩ名称アイコンとを１段右側に移動して表示し、条件付き実行の「POST/network」が繰返し実行されることを示す。開発担当者が新規アダプタロジック領域４３２Ｂにある「ｆｏｒ」アイコンの右側の「設定」ボタンをクリックすると、繰返し条件設定画面４９５（後記する図１８参照）に遷移して、繰返し条件を規定することができるようになる。
【００９７】
図１８は、本実施形態に係るＡＰＩアダプタ作成装置１００が表示する繰返し条件設定画面４９５を示す図である。実行条件設定画面４９１の左側には入出力データ領域４５０が表示され、右側には繰返し条件設定領域４９６が表示される。開発担当者は、繰返し条件設定領域４９６に、入出力データ領域４５０にあるパラメータを繰返し変数に規定することで繰返し条件を設定する。図１８では、繰返し変数として、パラメータ「productOrder.characteristic.network」が規定されている。このパラメータは、配列であり、配列の各要素について処理を繰り返すことが規定されている。
【００９８】
開発担当者が、図１７と図１５と図１８に示されるアダプタ化ＡＰＩのロジックを規定した時点では、ＡＰＩ実行順序データベース２３０には、レコード２４３〜２４８（図６参照）が格納されている。新規アダプタロジック領域４３２Ｂ（図１７参照）には、「POST/auth」、「ｆｏｒ」、「ｉｆ」、「POST/network」の順に処理が規定されており、それぞれレコード２４３〜２４６に対応する。
【００９９】
レコード２４８は、レコード２４４に示される繰返し実行の終了を示す。レコード２４４の付加情報に２３６には、繰返し条件設定領域４９６（図１８参照）に規定された繰返し変数が格納されている。
レコード２４７は、レコード２４５に示される条件付き実行の終了を示す。レコード２４５の付加情報に２３６には、実行条件設定領域４９２（図１５参照）に規定された実行条件の式が格納されている。
【０１００】
≪ソースコード生成処理≫
図１９は、本実施形態に係るソースコード生成部１１８が実行するソースコード生成処理を示すフローチャートである。図２０は、本実施形態に係るソースコード生成部１１８が実行する本体処理出力処理を示すフローチャートである。本体出力処理とは、図１９のステップＳ２０４の処理である。図２１は、本実施形態に係るソースコード生成部１１８が生成したソースコード２９０である。図１９〜図２１を参照しながら、ＡＰＩ実行順序データベース２３０のレコード２４３〜２４８に示されるアダプタ化ＡＰＩのロジックがソースコード２９０として出力される処理を説明する。なお、ソースコード生成処理は、ステップＳ１０４（図３参照）において実行される処理である。
【０１０１】
ソースコード生成処理の説明を行う前に、生成されるアダプタ化ＡＰＩのソースコード２９０の概要を説明する。アダプタ化ＡＰＩはオブジェクト指向言語のクラスのメソッドとして定義される。
行１は、クラス名の宣言であり、行１以降がクラス定義（クラスの記述）となる。行２８は、クラス定義の終了行である。クラス名は、アダプタ化ＡＰＩの名称（図６のＡＰＩ２３１参照）や種別（図６の種別２３２参照）を含む。
【０１０２】
行３は、アダプタ化ＡＰＩであるメソッドのメソッド名宣言であり、行３以降がメソッド定義となる。行２７は、メソッド定義の終了行である。以下に説明するメソッドの定義（行５〜行２６）がアダプタ化ＡＰＩのロジックであり、レコード２４３〜２４８（図６参照）に格納された処理がソースコードとして出力されたものである。
【０１０３】
行９は、卸サービスＡＰＩの「postAuth」の呼出しである。行５〜行７は、「postAuth」の呼出しの前に、「postAuth」の要求パラメータを生成するコードであって、アダプタ化ＡＰＩの要求パラメータ（取得元）の値を「postAuth」の要求パラメータにセットするコードである。行１１〜行１２は、「postAuth」の応答パラメータをアダプタ化ＡＰＩの応答パラメータ（反映先）にセットするコードである。
【０１０４】
行１４は、繰返し条件を含むｆｏｒ文の始まりであり、行２６は、ｆｏｒ文の終了行である。
行１５は、実行条件を含むｉｆ文の始まりであり、行２５は、ｉｆ文の終了行である。
行１６〜行２４は、ｉｆ文に含まれる処理であり、行２１の卸サービスＡＰＩの「postNetwork」の呼出し、行１６〜行１９の要求パラメータの処理、行２３〜行２４の応答パラメータの処理を含む。
【０１０５】
図１９のステップＳ２０１において、ソースコード生成部１１８は、ソースコード２９０の行１に示されるクラス名宣言行を出力する。クラス名宣言行に含まれるクラス名「AddYYYProcess」の「Add」は、アダプタ化ＡＰＩが新規（図６の種別２３２が「Ａ」）であることを示している。「YYY」は、アダプタ化ＡＰＩの名称（図６のＡＰＩ２３１参照）である。
【０１０６】
ステップＳ２０２において、ソースコード生成部１１８は、ソースコード２９０の行３に示されるメソッド名宣言行を出力する。メソッド名の「interactWithPartner」は、固定の名称である。
ステップＳ２０３において、ソースコード生成部１１８は、アダプタ関数のロジックに含まれる処理ごとに、ステップＳ２０４の本体処理出力を繰り返す。レコード２４３〜２４８におけるロジックに含まれる処理とは、レコード２４３，２４４に示される処理である。レコード２４５〜２４７に示される処理は、レコード２４４に示される「ｆｏｒ」の繰返し処理に含まれる処理であるため、ステップＳ２０３の繰返し処理の対象外となる。また、レコード２４８の処理は、レコード２４４の繰返し処理の終了であり、レコード２４４に対する本体出力処理の一部として処理される。
【０１０７】
ステップＳ２０４の本体処理出力は、後記する図２０で説明する。
ステップＳ２０５において、ソースコード生成部１１８は、アダプタ関数のロジックに含まれる全ての処理について、ステップＳ２０４を実行したか判断する。全ての処理についてステップＳ２０４を実行したならば、ステップＳ２０６に進み、残りの処理があれば、次の処理についてステップＳ２０４を実行する。ソースコード２９０の行５〜行２６は、ステップＳ２０３〜Ｓ２０５の処理で出力される。
【０１０８】
ステップＳ２０６において、ソースコード生成部１１８は、メソッド定義の終了行であるソースコード２９０の行２７を出力する。
ステップＳ２０７において、ソースコード生成部１１８は、クラス定義の終了行であるソースコード２９０の行２８を出力する。
【０１０９】
≪ソースコード生成処理：本体出力処理≫
続いて、図２０を参照しながらステップＳ２０４の本体出力処理の詳細を説明する。本体出力処理は、ステップＳ２３８，Ｓ２４３において、自身である本体出力処理を呼び出しており、再帰的な処理となっている。図１９のステップＳ２０３〜Ｓ２０５のループにおいて、本体出力処理は、レコード２４３に対応する「postAuth」と、レコード２４４に対応する「ｆｏｒ」との２回実行されるが、自身を呼び出すことで、さらに多くの本体出力処理が実行される。
【０１１０】
ステップＳ２３１において、ソースコード生成部１１８は、処理種別２３４（図６参照）が「ＡＰＩ実行」（卸サービスＡＰＩの呼出し）ならば（ステップＳ２３１→ＡＰＩ実行）ステップＳ２３２に進み、処理種別２３４が「制御」で処理２３５が「ｆｏｒ」ならば（ステップＳ２３１→ｆｏｒ）ステップＳ２３５に進み、処理種別２３４が「制御」で処理２３５が「ｉｆ」ならば（ステップＳ２３１→ｉｆ）ステップＳ２４１に進む。
【０１１１】
ステップＳ２３２において、ソースコード生成部１１８は、要求パラメータをセットするコードを出力する。詳しくは、ソースコード生成部１１８は、ＡＰＩパラメータデータベース２５０（図７参照）に含まれる、呼び出される卸サービスＡＰＩに対応するレコードを参照して、アダプタ化ＡＰＩの要求パラメータを卸サービスＡＰＩの要求パラメータにセットするソースコードを生成する。
【０１１２】
以下では、レコード２４３の「postAuth」に対して本体出力処理が呼ばれた場合を例に説明する。ソースコード生成部１１８は、ＡＰＩパラメータデータベース２５０（図７参照）のなかで、処理２５３がレコード２４３の処理２３５の「postAuth」と実行順序２３３の「１」とを含み、パラメータ種別２５４が「要求」であるレコードを検索する。次に、ソースコード生成部１１８は、検索結果のレコードのオブジェクト２５５を生成するコードと、検索結果のレコードに含まれるオブジェクト２５５のパラメータ２５６に入力元／反映先２５７をセットするコードとを出力する。レコード２４３の「postAuth」の場合では、レコード２６１が検索されて、オブジェクトを生成するソースコード２９０の行５と、パラメータをセットする行６が出力される。ソースコード２９０の行７についても、レコード２６１と同様に検索されて出力される。オブジェクトを生成するコードが出力済みならば、オブジェクトを生成するコードは出力されない。
【０１１３】
ステップＳ２３３において、ソースコード生成部１１８は、卸サービスＡＰＩを呼び出すコードを出力する。レコード２４３の「postAuth」においては、ソースコード生成部１１８は、ソースコード２９０の行９を出力する。
【０１１４】
ステップＳ２３４において、ソースコード生成部１１８は、応答パラメータをセットするコードを出力する。詳しくは、ソースコード生成部１１８は、ＡＰＩパラメータデータベース２５０に含まれる、呼び出される卸サービスＡＰＩに対応するレコードを参照して、卸サービスＡＰＩの応答パラメータをアダプタ化ＡＰＩの応答パラメータにセットするソースコードを生成する。
【０１１５】
以下では、レコード２４３の「postAuth」に対して本体出力処理が呼ばれた場合を例に説明する。ソースコード生成部１１８は、ＡＰＩパラメータデータベース２５０（図７参照）のなかで、処理２５３がレコード２４３の処理２３５の「postAuth」と実行順序２３３の「１」とを含み、パラメータ種別２５４が「応答」であるレコードを検索する。次に、ソースコード生成部１１８は、検索結果のレコードのオブジェクト２５５を取得するコードと、入力元／反映先２５７のパラメータに、パラメータ２５６をセットするコードとを出力する。レコード２４３の「postAuth」の場合では、レコード２６３が検索されて、オブジェクト２５５のAuthResponseを取得するソースコードの行１１と、入力元／反映先２５７のパラメータ「internalData.apiToken」に、パラメータ２５６の「apiToken」をセットする行１２が出力される。
【０１１６】
ステップＳ２３５において、ソースコード生成部１１８は、繰返し制御変数を生成する。詳しくは、ソースコード生成部１１８は、付加情報２３６にある繰返し変数の制御変数を生成する。
以下では、レコード２４４の「ｆｏｒ」に対して本体出力処理が呼ばれた場合を例に説明する。レコード２４４の付加情報２３６にある繰返し変数は、「productOrder.characteristic.network」であり、配列の変数である。このため、ソースコード生成部１１８は、配列のインデックスを表す制御変数として整数の変数である「ｉ」を生成する。
【０１１７】
ステップＳ２３６において、ソースコード生成部１１８は、ｆｏｒ行を出力する。詳しくは、ソースコード生成部１１８は、生成した制御変数と、付加情報２３６にある繰返し変数を含むｆｏｒ行を出力する。
以下では、レコード２４４の「ｆｏｒ」に対して本体出力処理が呼ばれたときを例に説明する。ソースコード生成部１１８は、制御変数の初期値は０であり、制御変数を１ずつ増やしながら、繰返し変数「productOrder.characteristic.network」の配列の長さである「productOrder.characteristic.network.length」まで繰り返すことを示す、ソースコード２９０の行１４を出力する。
【０１１８】
ステップＳ２３７〜２３９において、ソースコード生成部１１８は、「ｆｏｒ」に含まれる処理ごとに、ステップＳ２３８の本体出力処理を繰り返す。レコード２４４の「ｆｏｒ」に含まれる処理は、レコード２４５の「ｉｆ」の処理のみである。レコード２４６は、レコード２４５の「ｉｆ」に含まれる処理であり、レコード２４７は、レコード２４５の「ｉｆ」の終了である。よって、ソースコード生成部１１８は、レコード２４５の処理に対する本体出力処理を実行する。この処理については、ステップＳ２４１〜Ｓ２４５で詳しく説明する。なお、この処理で、ソースコード２９０の行１５〜行２５が出力される。
ステップＳ２４０において、ソースコード生成部１１８は、終了行を出力する。レコード２４４の「ｆｏｒ」では、ソースコード２９０の行２６を出力する。
【０１１９】
ステップＳ２４１において、ソースコード生成部１１８は、実行条件を含むｉｆ行を出力する。以下では、レコード２４５の「ｉｆ」に対して本体出力処理が呼ばれたときを例に説明する。レコード２４５の「ｉｆ」の実行条件は、付加情報２３６に示される「productOrder.characteristic.network.enable == true」であり、ソースコード生成部１１８は、この実行条件を含むソースコード２９０の行１５を出力する。なお、実行条件に含まれる「productOrder.characteristic.network」は配列であり、行１４で出力された制御変数の「ｉ」を含めて、行１５は出力される。
【０１２０】
ステップＳ２４２〜Ｓ２４４において、ソースコード生成部１１８は、「ｉｆ」に含まれる処理ごとに、ステップＳ２４３の本体出力処理を繰り返す。レコード２４５の「ｉｆ」に含まれる処理は、レコード２４６の「postNetwork」の処理のみである。よって、ソースコード生成部１１８は、レコード２４６の処理に対する本体出力処理を実行する。この処理については、ステップＳ２３２〜Ｓ２３４で説明した際の「postAuth」と同様の処理であり、ソースコード２９０の行１６〜行２４が出力される。
【０１２１】
ステップＳ２４５において、ソースコード生成部１１８は、終了行を出力する。レコード２４５の「ｉｆ」では、ソースコード２９０の行２５を出力する。
【０１２２】
≪ＡＰＩアダプタ作成装置の特徴≫
開発担当者は、アダプタ化ＡＰＩが呼び出す卸サービスＡＰＩの順序や実行条件、繰返し条件を規定して、アダプタ化ＡＰＩの要求・応答パラメータと、卸サービスＡＰＩの要求・応答パラメータとの関係を規定することで、ＡＰＩアダプタを開発することができる。開発担当者は、ソースコードを記述する必要がなく、ロジックの検討に集中することができるので、開発期間が短くなり、新しい卸サービスや仕様変更にも短期間で対応可能となる。
上記した実行順序やパラメータ関係の規定が設計情報であり、設計情報である仕様書を作成する必要がなくなる。また、設計情報またはソースコードを変更したときに、他方を修正する必要もなくなる。設計情報と実装（ソースコード）との不整合も発生しない。
【符号の説明】
【０１２３】
１００  ＡＰＩアダプタ作成装置
１１０  制御部
１１１  卸サービスＡＰＩ仕様参照部
１１２  ＡＰＩ実行順序設定部
１１３  ＡＰＩ実行条件設定部
１１４  ＡＰＩ繰返し実行設定部
１１５  ＡＰＩ要求パラメータ取得元設定部
１１６  ＡＰＩ応答パラメータ反映先設定部
１１７  ＡＰＩ要求応答パラメータ設計支援部
１１８  ソースコード生成部
１１９  アダプタ生成部
１２０  記憶部
【図１】
2020021374.tif 000003
【図２】
2020021374.tif 000004
【図３】
2020021374.tif 000005
【図４】
2020021374.tif 000006
【図５】
2020021374.tif 000007
【図６】
2020021374.tif 000008
【図７】
2020021374.tif 000009
【図８】
2020021374.tif 000010
【図９】
2020021374.tif 000011
【図１０】
2020021374.tif 000012
【図１１】
2020021374.tif 000013
【図１２】
2020021374.tif 000014
【図１３】
2020021374.tif 000015
【図１４】
2020021374.tif 000016
【図１５】
2020021374.tif 000017
【図１６】
2020021374.tif 000018
【図１７】
2020021374.tif 000019
【図１８】
2020021374.tif 000020
【図１９】
2020021374.tif 000021
【図２０】
2020021374.tif 000022
【図２１】
2020021374.tif 000023