#author("2023-01-20T02:01:21+00:00","default:admin","admin")
#author("2023-01-20T02:25:08+00:00","default:admin","admin")
-[[基礎から分かるAPI管理:https://techtarget.itmedia.co.jp/tt/series/9626/]]

*プロトコル [#kaf556ef]
-[[REST、gRPC、および GraphQL を使い分ける (パート 1):https://www.xlsoft.com/jp/blog/blog/2022/05/25/post-29393/]]
-[[REST、gRPC、および GraphQL を使い分ける (パート 2):https://www.xlsoft.com/jp/blog/blog/2022/06/02/post-29512/]]

-[[gRPCとGraphQL:https://qiita.com/hitochan777/items/7ecc11e77fa89be009d3]]
-[[GraphQLとgRPCとRESTの長所と短所:https://morioh.com/p/5a36922b0c1d]]
-[[gRPCとGraphQLのマイクロサービスでの使われ方とBFFの技術選定について:https://qiita.com/shingo02/items/2beb5200e07b97c0e805]]
-[[APIを知ったかぶり→話せるに変えるための5分:https://note.com/kimken_acweb/n/ndec3fc43f27b]]

-[[GraphQL と gRPC で通信する Go 製のマイクロサービスをセットアップする:https://qiita.com/takano-h/items/702ec2aef53a8c756690]]

**REST [#n6b80a33]
-[[Wikipedia - REST:http://ja.wikipedia.org/wiki/REST]]

-[[ThinkIT - RESTなWebサービスの利用/開発:http://thinkit.jp/article/1097/1/]]
-[[CodeZine - Jersey、AJAX、JSONを使ってRESTに挑戦しよう:http://codezine.jp/article/detail/4596]]

**gRPC [#ye3d20c0]
-リモート プロシージャ コールの一般的な概念を進化させた gRPC では、クライアントはリモート コンピューター上のメソッドを、そのシステムがローカルであるかのように直接呼び出すことができます。
-gRPC はプロトコル バッファー (または Protobufs) を利用して、テキストベースの JSON や XML ではなく、バイナリにシリアル化されたデータでタイプセーフなデータ転送インターフェイスを定義します。
-HTTP/1 よりも信頼性が高く、高速で効率良い HTTP/2 を利用しています。

-gRPC はデータのシリアル化に Protobufs を使用することで、非常に軽量で高速な API を提供します。非常に軽量であるため、gRPC はクライアントの計算能力が限られている場合 (IoT など) によく使われます。このような場合、サーバーが負荷の高い処理を行います。
-gRPC の言語に依存しないインターフェイス コントラクトの定義は、異なる言語で記述されたサービス間に優れた通信方法を提供します。gRPC の学習曲線は、REST ほど浅くはないものの、十分に許容できるものです。
-gRPC は非常に効率的ですが、ブラウザーで十分にサポートされているわけではありません。また、サンドボックスで実験しながら学習するのは難しく、HTTP/2 の使い方も、経験の浅い API 開発者には馴染みのないものでしょう。

-gRPC はスマート デバイス間の通信の促進に広く使用されています。サイズ、限られた計算リソース、リアルタイム機能の必要性から、IoT デバイスの動作は gRPC のパフォーマンスに依存しています。
-gRPC は、デプロイメント パイプライン ツールやアプリケーション モニタリング システムにも適しています。

**SOAP [#m4441dae]

*** 各言語毎のツール [#s1b5cc81]
-PHP
--[[NuSOAP:http://sourceforge.net/projects/nusoap/]]
--[[Pear:http://pear.php.net/]]
-Java
--[[Apache Axis:http://ws.apache.org/axis/]]
--[[Apache WSS4J:http://ws.apache.org/wss4j/]]
-Python
--[[SOAPPy:http://pywebsvcs.sourceforge.net/]]
-Perl
--[[SOAP::Lite:http://www.soaplite.com/]]

* データフォーマット [#s34ecead]
** JSON [#t5636b19]

** JSONP [#a82f088a]
-[[JSONPを使ってJavaScriptだけでマッシュアップ:http://techblog.yahoo.co.jp/cat207/web_1/jsonpjavascript/]]
-[[JSONP によるクロスドメインの通信: 第 1 回 JSONP と jQuery を組み合わせ、強力なマッシュアップを迅速に作成する:http://www.ibm.com/developerworks/jp/web/library/wa-aj-jsonp1/]]
-[[入門 JSON 3 -- JSONP とコールバック関数:http://www.baldanders.info/spiegel/remark/archives/000222.shtml]]

-[[ここが危ない!Web2.0のセキュリティ - 第3回 JSONPでのクロスドメインアクセス:http://gihyo.jp/dev/serial/01/web20sec/0003]]
-[[教科書に載らないWebアプリケーションセキュリティ - 第4回[気になる]JSONPの守り方:http://www.atmarkit.co.jp/fcoding/articles/webapp/04/webapp04a.html]]

** XML [#g7e2c4b0]

** YAML [#vd414a5a]

** PHPserialize [#b1433059]
-[[PHP SERIALIZEのススメ:http://techblog.yahoo.co.jp/web/yahoo/post_1/]]

-Yahoo! のAPIで使用している
-[[ライブラリを利用することで、他の言語(C#, perl など)でも PHP serialize は読み込むことが可能:http://www.ecoop.net/memo/2006-07-14-1.html]]
-[[Yahoo曰く、XMLじゃなくてPHPの変数をそのままシリアライズして返せばいいじゃん:http://neta.ywcafe.net/000544.html]]

** Protocol Buffers [#g5aa7826]
-[[グーグル、XMLに代わるデータ交換ツール「Protocol Buffers」をオープンソース化:http://japan.cnet.com/news/media/story/0,2000056023,20376854,00.htm]]

* セキュリティ [#rafebb58]
** クロスサイトスクリプティング対策 [#vf122f66]

** クロスドメインアクセス対策 [#o0bd27d8]
-WebAPIを公開するドメインは,他のサービスとは別のドメインにする

** 機密情報の取り扱い [#v3672077]
-機密情報を提供する場合にはユーザ認証を行う ... Basic認証、Digest認証
-機密情報をJSON,JSONP形式のデータとして提供する場合には,SCRIPTタグから読み込まされた際にデータが漏洩しないよう注意
-機密情報を含んだデータをやりとりする場合には,WebAPIをHTTPSで提供

** 不正利用対策 [#d4f755ff]
-メールアドレス等をもとにユーザ登録を行い,WebAPIを利用するための認証キーを発行し,WebAPI利用の際には認証キーを必須にする
-認証キーは万全ではない

** 認証API [#qb70eeae]
-[[認証APIのセキュリティ:http://gihyo.jp/dev/serial/01/web20sec/0006?page=2]]


* APIの例 [#ob1bd5db]
** Amazon [#s96e3a60]
-[[Product Advertising API:https://affiliate.amazon.co.jp/gp/advertising/api/detail/main.html]]
--[[Product Advertising API 開発者向けガイド リクエストの署名認証について(参考訳):https://affiliate.amazon.co.jp/gp/associates/help/t126?ie=UTF8&pf_rd%5Ft=501&ref%5F=amb%5Flink%5F83884676%5F6&pf%5Frd%5Fm=AN1VRQENFRJN5&pf%5Frd%5Fp=&pf%5Frd%5Fs=assoc-center-1&pf%5Frd%5Fr=&pf%5Frd%5Fi=assoc-api-detail-4-v2]]
-[[Amazon Web サービス入門(Product Advertising API):http://www.ajaxtower.jp/ecs/]]

** Flicker API [#kec8e2bb]
-[[初心者のためのFlickrのAPI入門:http://webservice.kabufuru.net/flickr/sitemap.php]]

** Google [#u7504389]
-[[Google Code:http://code.google.com/intl/ja/]]
-[[AJAX APIs Playground:http://code.google.com/apis/ajax/playground/]]
--[[Google APIがブラウザーで試し放題!:http://ascii.jp/elem/000/000/212/212001/]]

-[[Google Maps API:http://code.google.com/intl/ja/apis/maps/]] [#e0f5b685]
--[[Google MAPS APIプログラミング:http://www.geekpage.jp/web/google-maps-api/]]

-Google AJAX Language API
-Google Chart API

** YouTube API [#r9c69d45]
** Twitter API [#q96149ab]


** Yahoo! [#s0a34511]
-[[Yahoo! デベロッパーネットワーク:http://developer.yahoo.co.jp/]]
--[[エラーメッセージおよびコード:http://developer.yahoo.co.jp/appendix/errors.html]]
--[[サンプルコード集:http://developer.yahoo.co.jp/sample/]]
--[[アプリケーション例:http://dir.yahoo.co.jp/computers_and_internet/programming_and_development/yahoo_developer_network/]]

-[[テキスト解析Web API:http://developer.yahoo.co.jp/webapi/jlp/]]

** Amazon Simple Storage Service [#ob45ea08]
** Amazon Simple DB [#rb70f5be]
** Amazon Elastic Compute Cloud [#n0e704e3]

** SiteCatalyst [#pfd8b3c1]
-[[SiteCatalyst Developer Center:https://developer.omniture.com/home]]
-認証:[[OASIS Web Services Security Username Token Profile 1.0 specification:http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0.pdf]]

*カテゴリ別 [#p8d64230]
-[[天気予報API:http://tenkiapi.jp/]]

-[[ここが危ない!Web2.0のセキュリティ - 第6回 WebAPI,認証APIのセキュリティ:http://gihyo.jp/dev/serial/01/web20sec/0006]]
-[[WAFL みんなでつくる WEB-API &マッシュアップ情報サイト:http://wafl.net/]]
-[[ThinkIT - PerlでWeb APIを使いたおす:http://www.thinkit.co.jp/free/article/0609/8/1/]]

-[[@IT - 連載 ビジネスWebサービス最新事情:http://www.atmarkit.co.jp/fxml/tanpatsu/25websvc/01.html]]

**医療系 [#b71bf9ce]
-[[SCUEL:http://scuel.me/project]]
-[[ソシオヘルスAPI:http://api.sociohealth.jp]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS