SlideShare a Scribd company logo
1 of 29
オントロジーを用いた
OpenAPI Documentの制約推薦システム
第14回インターネットと運用技術シンポジウム(IOTS 2021)
柴田 晃 / 大阪市立大学大学院工学研究科
石橋 勇人 / 大阪市立大学大学院工学研究科
目次
•背景と目的
•提案システムについて
•動作検証
•まとめと今後の展望
背景と目的
RESTful API
•Web APIに良く利用されている
•RESTと呼ばれるアーキテクチャに沿って構築
• URIでリソースを指定
• HTTPのメソッドでリソースを操作
POST /api/user HTTP/1.1
Host: example.com
Content-Type: application/json
cache-control: no-cache
{
"name":"Shibata"
}
Client Server
図1: Shibataユーザーを作成するRESTful APIのリクエスト例
Shibataユーザーの作成
OpenAPI Document
•APIの仕様書
• OpenAPI Specification (OAS)を用いて記述
• フォーマットはYAMLまたはJSON
•広く利用されている
•テストケースを生成する研究に使われている[1][2]
• パラメータの制約に関する問題がある
[1] Ed-douibi, H., Canovas Izquierdo, J. L. and Cabot, J.: Automatic Generation of Test Cases for REST APIs: A
Specification-Based Approach, 2018 IEEE 22nd International Enterprise Distributed Object Computing
Conference (EDOC), IEEE, pp. 181–190 (2018).
[2] 柴田 晃,石橋勇人: QA テストのアクセスログを用いた Web システム負荷試験生成システムの提案,インター
ネッ トと運用技術シンポジウム論文集,pp. 103–104 (2020).
OpenAPI Documentの問題
•パラメータの制約記述が不足
• 説明として書かれている
• 制約が書かれていない
•ドキュメントに存在しない制約が実装されている
• ドキュメントと実装にずれ
• ドキュメント記述者や参照者の想定とは異なる実装の可能
性
なぜ制約が書かれていないのか?
•記述者の怠慢である
•記述者にとっては自明
• メールアドレスなど
• 実装は複数のパターンが考えられる
•メールアドレスのフォーマット(制約)
• /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-
zA-Z0-9-]+)*$/
• /A[w+-.]+@[a-zd-.]+.[a-z]+z/
• /.+@.+¥..+/
本研究の目的
•制約がOASの記法にそって不足無く記述される状態に
する
• OASの記法を拡張する等のアプローチは取らない
•OpenAPI Documentの記述者を支援システムを実装
• 不足している制約を発見する
• 記述するべき制約の種類と値を推薦する
提案システム
提案システム
•WebAPIに関するオントロジーをもとに,OpenAPI
Documentに不足している制約の発見と推薦を行う
• 開発者は書かれていない制約を実装している
• 知識をもとに制約を判断している
• 人と同じように知識を元に制約を発見したい
• 人の知識をシステムで扱うための表現=オントロジー
提案システムの概要
•OpenAPI Documentからパラメータの定義を取得
•個々のパラメータをオントロジーにマッピング
•制約を発見し,不足している制約を推薦する
(1)
OpenAPI Document
(2)
OpenAPI Document
(3)
(4)
OpenAPI
Document OpenAPI
図2: 提案システムの概要
提案システムの制限
•提案システムではパラメータの型情報をもとに制約の
発見と推薦を行う
リスト2: NewPetスキームの
定義
OpenAPI Documentの例
リスト1: 新しいペットを登録するAPIの定義
提案システムで利用するオントロジー
•パラメータプロパティ
• パラメータの制約
•APIパラメータ
• パラメータの概念
•パラメータ型
• パラメータのデータ型
図3: 提案システムで利用するオントロジーの一部
提案システムで利用するオントロジー
OASの定義を元に作成
著者の経験により作成
図3: 提案システムで利用するオントロジーの一部
制約の検索の流れ
図3: オントロジーとOpenAPI Documentのマッピングと制約の検索例
制約の検索の流れ
図3: オントロジーとOpenAPI Documentのマッピングと制約の検索例
(1)パラメータの定義からオン
トロジーのString型クラスに紐
付く
制約の検索の流れ
図3: オントロジーとOpenAPI Documentのマッピングと制約の検索例
(2)String型クラスを所有する
(hasTypeで繋がる)クラスを
探すとNameクラスが見つかる
制約の検索の流れ
図3: オントロジーとOpenAPI Documentのマッピングと制約の検索例
(3) Nameクラスが所有する制約
(hasPropertyで繋がるクラス)
を探す
動作検証
動作検証用の入力
•SwaggerによりGitHubに公開されているサンプル1を利
用
1: https://github.com/swagger-api/swagger-petstore/blob/master/src/main/resources/openapi.yaml
リスト3: 動作検証用のパラメータ定義抜粋
推薦内容の出力
•lineはOpenAPI Documentでの定義
行
•maximumなど,具体的な推薦値が
オントロジー内で発見できた場合
は推薦値を表示
•exclusiveMaximumのように,具体
的な推薦値がオントロジー内で発
見できない場合は,制約の名前だ
け表示
リスト4: 推薦内容の出力例
まとめと今後の展望
まとめ
•本研究では,Web APIのパラメータに関するオントロ
ジーをもとに,OpenAPI Documentに不足している制
約の発見と推薦を行うシステムを提案した.
•提案手法では,OpenAPI Documentに定義されたパラ
メータの型情報から,不足している制約を発見推薦し
ている.
•動作検証から,不足している制約は発見できることは
確認したが,オントロジーに定義されている情報が少
なく,制約にどのような値を設定すると良いかの推薦
ができていない.
今後の展望
•オントロジーの拡充
• 推薦できる値を増やす
•検索条件の追加
• 型情報以外の情報も組み合わせる
•提示インターフェースの実装
• OpenAPI Documentの記述者に制約を提示する
まとめ
•本研究では,Web APIのパラメータに関するオントロ
ジーをもとに,OpenAPI Documentに不足している制
約の発見と推薦を行うシステムを提案した.
•提案手法では,OpenAPI Documentに定義されたパラ
メータの型情報から,不足している制約を発見推薦し
ている.
•動作検証から,不足している制約は発見できることは
確認したが,オントロジーに定義されている情報が少
なく,制約にどのような値を設定すると良いかの推薦
ができていない.
Appendix
オントロジーの展望
•オントロジーを用いる ことで次のような推薦を行うこ
とができる
• instance-id というパラメータ定義があった時,Amazon
WebServices(AWS)の知識から「^i-[0-9a-z]{17}$」 というパ
ターンを制約として推薦する
• name(氏名),surname(氏),given name(名)という パラメー
タ定義があった時,パラメータ間の関係と氏 名に関する知
識から surname の最大長と given name の最大長を足した
値が,name の文字数の最大長を越 えないように推薦する

More Related Content

Similar to IOTS2021発表スライド:オントロジーを用いたOpenAPI Documentの制約推薦システム

RESTful Web API Design
RESTful Web API DesignRESTful Web API Design
RESTful Web API DesignAkinari Tsugo
 
Web API(Dynamics 365 )勉強会
Web API(Dynamics 365 )勉強会Web API(Dynamics 365 )勉強会
Web API(Dynamics 365 )勉強会Kazuya Sugimoto
 
Web API を気軽に使える ツールやサービスのご紹介
Web API を気軽に使えるツールやサービスのご紹介Web API を気軽に使えるツールやサービスのご紹介
Web API を気軽に使える ツールやサービスのご紹介CData Software Japan
 
Open capi meetup20180409 (revised)
Open capi meetup20180409 (revised)Open capi meetup20180409 (revised)
Open capi meetup20180409 (revised)Yutaka Kawai
 
エンジニアのための勉強会 #3 『RESTful API』
エンジニアのための勉強会 #3 『RESTful API』エンジニアのための勉強会 #3 『RESTful API』
エンジニアのための勉強会 #3 『RESTful API』Naoki Yoshitake
 
英国オープンバンキング技術仕様の概要
英国オープンバンキング技術仕様の概要英国オープンバンキング技術仕様の概要
英国オープンバンキング技術仕様の概要Tatsuo Kudo
 
ADO.NETでつながるクラウドデータ連携
ADO.NETでつながるクラウドデータ連携ADO.NETでつながるクラウドデータ連携
ADO.NETでつながるクラウドデータ連携CData Software Japan
 
2015/11/15 Javaでwebアプリケーション入門
2015/11/15 Javaでwebアプリケーション入門2015/11/15 Javaでwebアプリケーション入門
2015/11/15 Javaでwebアプリケーション入門Asami Abe
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説Akira Inoue
 
20170911 API Meetup Tokyo #21
20170911 API Meetup Tokyo #2120170911 API Meetup Tokyo #21
20170911 API Meetup Tokyo #21kounan13
 
OSS on Azure で構築するウェブアプリケーション
OSS on Azure で構築するウェブアプリケーションOSS on Azure で構築するウェブアプリケーション
OSS on Azure で構築するウェブアプリケーションDaisuke Masubuchi
 
Swagger jjug ccc 2018 spring
Swagger jjug ccc 2018 springSwagger jjug ccc 2018 spring
Swagger jjug ccc 2018 springkounan13
 
オープンデータ Web API
オープンデータ Web APIオープンデータ Web API
オープンデータ Web APIHironori Sakamoto
 

Similar to IOTS2021発表スライド:オントロジーを用いたOpenAPI Documentの制約推薦システム (20)

API Gateway / AWS CLI
API Gateway / AWS CLIAPI Gateway / AWS CLI
API Gateway / AWS CLI
 
Workshop1-01
Workshop1-01Workshop1-01
Workshop1-01
 
RESTful Web API Design
RESTful Web API DesignRESTful Web API Design
RESTful Web API Design
 
Web API(Dynamics 365 )勉強会
Web API(Dynamics 365 )勉強会Web API(Dynamics 365 )勉強会
Web API(Dynamics 365 )勉強会
 
Web API を気軽に使える ツールやサービスのご紹介
Web API を気軽に使えるツールやサービスのご紹介Web API を気軽に使えるツールやサービスのご紹介
Web API を気軽に使える ツールやサービスのご紹介
 
Open capi meetup20180409 (revised)
Open capi meetup20180409 (revised)Open capi meetup20180409 (revised)
Open capi meetup20180409 (revised)
 
エンジニアのための勉強会 #3 『RESTful API』
エンジニアのための勉強会 #3 『RESTful API』エンジニアのための勉強会 #3 『RESTful API』
エンジニアのための勉強会 #3 『RESTful API』
 
WordPressAPI
WordPressAPIWordPressAPI
WordPressAPI
 
英国オープンバンキング技術仕様の概要
英国オープンバンキング技術仕様の概要英国オープンバンキング技術仕様の概要
英国オープンバンキング技術仕様の概要
 
Workshop1-03
Workshop1-03Workshop1-03
Workshop1-03
 
ADO.NETでつながるクラウドデータ連携
ADO.NETでつながるクラウドデータ連携ADO.NETでつながるクラウドデータ連携
ADO.NETでつながるクラウドデータ連携
 
2015/11/15 Javaでwebアプリケーション入門
2015/11/15 Javaでwebアプリケーション入門2015/11/15 Javaでwebアプリケーション入門
2015/11/15 Javaでwebアプリケーション入門
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
 
20170911 API Meetup Tokyo #21
20170911 API Meetup Tokyo #2120170911 API Meetup Tokyo #21
20170911 API Meetup Tokyo #21
 
OSS on Azure で構築するウェブアプリケーション
OSS on Azure で構築するウェブアプリケーションOSS on Azure で構築するウェブアプリケーション
OSS on Azure で構築するウェブアプリケーション
 
ASP.NET Core 概要(2017年3月時点)
ASP.NET Core 概要(2017年3月時点)ASP.NET Core 概要(2017年3月時点)
ASP.NET Core 概要(2017年3月時点)
 
Swagger jjug ccc 2018 spring
Swagger jjug ccc 2018 springSwagger jjug ccc 2018 spring
Swagger jjug ccc 2018 spring
 
オープンデータ Web API
オープンデータ Web APIオープンデータ Web API
オープンデータ Web API
 
Web API入門
Web API入門Web API入門
Web API入門
 
APICのREST API入門
APICのREST API入門APICのREST API入門
APICのREST API入門
 

Recently uploaded

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Recently uploaded (9)

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

IOTS2021発表スライド:オントロジーを用いたOpenAPI Documentの制約推薦システム

Editor's Notes

  1. 6:25
  2. 9:20
  3. 12:00
  4. 16:20
  5. 18:05