Successfully reported this slideshow.
Your SlideShare is downloading. ×

Extension(を検索するAPI)を使う

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 22 Ad
Advertisement

More Related Content

Similar to Extension(を検索するAPI)を使う (20)

Recently uploaded (20)

Advertisement

Extension(を検索するAPI)を使う

  1. 1. Extension(を検索するAPI)を使 う VS Code Meetup #3 - Extensionを使う編
  2. 2. ⾃⼰紹介 佐藤 翔 (Sato Sho) cssho (@csshooo) / cssho (Sho Sato) 所属: 株式会社ヒューマンテクノロジーズ 趣味: 猫とお酒
  3. 3. VSCode関連でやっていること VSMarketplaceBadge Visual Studio Marketplaceのアイテム対象のバッジ表⽰サービ ス。 Visual Studio MarketplaceVisual Studio Marketplace v2.0.0v2.0.0 installsinstalls 400146400146 ratingrating average: 3.75/5 (24 ratings)average: 3.75/5 (24 ratings)
  4. 4. SVG Viewer SVGのプレビューやエクスポートができる VSCodeの機能拡張 メンテナ募集中! というかまるっと管理してくれる⼈⼤募集!
  5. 5. Extensionを検索するAPI とは Visual Studio Marketplace内のアイテムを検索できるAPI
  6. 6. VSCodeでも vscode/extensionGalleryService.ts L501-L506 return this.requestService.request({ type: 'POST', url: this.api('/extensionquery'), data, headers }, token).then(context => {
  7. 7. Marketplaceでも
  8. 8. 仕様 多分ドキュメントにはまとめられていない VSCodeのソースコード等を参考に読み解いていく vscode/extensionGalleryService.ts
  9. 9. Endpoint https://marketplace.visualstudio.com/_apis/public/galle ry/extensionquery HTTP Method POST
  10. 10. HTTP Header Content-Type: application/json Accept: application/json;api-version=3.0- preview.1
  11. 11. Flags レスポンスに関する諸条件 enum Flags { None = 0x0, IncludeVersions = 0x1, IncludeFiles = 0x2, IncludeCategoryAndTags = 0x4, IncludeSharedAccounts = 0x8, IncludeVersionProperties = 0x10, ExcludeNonValidated = 0x20, IncludeInstallationTargets = 0x40, IncludeAssetUri = 0x80, IncludeStatistics = 0x100, IncludeLatestVersionOnly = 0x200, Unpublished = 0x1000 }
  12. 12. FilterType 検索条件 enum FilterType { Tag = 1, ExtensionId = 4, Category = 5, ExtensionName = 7, Target = 8, Featured = 9, SearchText = 10, ExcludeWithFlags = 12 }
  13. 13. SortBy ソート順(ここだけVSCodeのソースでカバーしきれておらずAzure DevOpsの機能拡張向けAPIのソースを参照) export enum SortByType { Relevance = 0, LastUpdatedDate = 1, Title = 2, Publisher = 3, InstallCount = 4, PublishedDate = 5, AverageRating = 6, TrendingDaily = 7, TrendingWeekly = 8, TrendingMonthly = 9, ReleaseDate = 10, Author = 11, WeightedRating = 12 }
  14. 14. Example ExtensionNameが cssho.vscode-svgviewer のアイテムの情 報を統計情報を含めて取得するクエリ { "filters": [{ "criteria": [{ "filterType": 7, // ExtensionNameが "value": "cssho.vscode-svgviewer" }] }], "flags": 256 }
  15. 15. 実際に実⾏してみると…
  16. 16. VSCodeの機能拡張で今⽇のトレ ンドTOP5 { "filters": [{ "criteria": [{ "filterType": 8, // ターゲット "value": "Microsoft.VisualStudio.Code" }], "pageSize": 5, // 5件 "sortBy": 7 // 今⽇のトレンド }] }
  17. 17. という感じでランキング的 なのも取れるので 定期的にランキング垂れ流したり お気に⼊りのExtensionの更新をウォッチしたり ⾃分の作ったExtensionの統計データを集計してみたり
  18. 18. ということでちゃちゃっとBot 作ってみました Google Apps Script + Slack App
  19. 19. ⼈より⼀⾜先に便利なExtensionを使 いたいそこのあなた! 是⾮このAPI触ってみてください!
  20. 20. 最後に⼤事なことなのでもう⼀度 ⾔います
  21. 21. SVG Viewer のオーナー募集中!

×