Mais conteúdo relacionado
Semelhante a Salesforce連携のためのOData入門 (10)
Mais de Shunji Konishi (20)
Salesforce連携のためのOData入門
- 3. Open Data Protocol
◦ http://www.odata.org/
◦ Microsoft が主導で推進しているらしい
httpのREST APIだけでデータの参照・更新・削除を
行うための仕様
SQLのhttp版くらいに思っておけばOKだと思う
◦ ↑というか、まさに今この程度の理解
◦ 具体的な検索条件やソートの指定の仕方等はなんとなく試し
てみた程度でちゃんと調べてはいない
- 4. httpだけでデータを読み書きできることにつきる
CORS(Cross Origin Resource Sharing)との組み
合わせを考えるとこんな状況もありえるかも?
◦ 近年色々な鉄道会社が時刻表や電車の遅延情報などをAPI
で提供し始めている(気がする)
◦ しかし、それぞれの鉄道会社はAPIはRESTではあっても全部
独自形式(知らないけど多分)
◦ 各社のAPIはCORSには対応していないのでブラウザから直
接は叩けず、サーバで実行するしかない(に違いない)
◦ CORSとODataがサポートされればブラウザから直接各社の
データに統一規格でアクセスできるのサーバ不要でアプリが
作れる(公開先はもはやGitHub.ioで良いですね(^^v)
まぁ希望なんで当分なさそうではあるけど
- 9. サンプルはHeroku上で公開されているので以下の
URLにアクセス
◦ BasicAuth: test/password
◦ http://flect-odata-test.herokuapp.com/odata
◦ http://flect-odata-test.herokuapp.com/odata/$metadata
◦ http://flect-odata-test.herokuapp.com/odata/Cars
◦ http://flect-odata-test.herokuapp.com/odata/Cars(1)
◦ http://flect-odata-
test.herokuapp.com/odata/Cars?$filter=Car_name%20eq%2
0%27LEGACY%27
- 10. 設定 > 開発 > External Data Sources
設定項目
◦ サーバURL: OData ProducerのURL
(Ex. https://flect-odata-test.herokuapp.com/odata)
◦ 種別: OData 2.0
◦ 形式: AtomPub
◦ Basic認証を設定した場合以下の認証設定が必要
◦ ID種別: 指定ユーザ
◦ 認証プロトコル: パスワード認証
◦ ユーザ名とパスワード
- 11. 設定 > 開発 > 外部オブジェクト
◦ 外部データソースを指定する以外は通常のカスタムオブジェ
クトとあまり変わらない
◦ API参照名には「__x」が付加される
◦ 作成直後は外部IDと表示URLだけが項目として設定されて
おり、各フィールドは手動でカスタム項目として追加する必要
がある
データ型等を指定できる
大文字小文字の差異に注意($metadataでフィールド名を確認
しながら設定を行うと良い)
◦ 他の外部オブジェクトや標準/カスタムオブジェクトに対して
参照関係が設定できる
多分、通常の参照/親子関係と同じ感覚で使用できると思う
- 16. External Datasourceの設定画面にこんな項目がある
多分filterのカスタム関数を自前で作ればそれが使えるんだと
思う
この辺を参考にすれば実装できそう
http://olingo.apache.org/doc/odata2/tutorials/Olingo_T
utorial_AdvancedRead_FilterVisitor.html
必要に迫られれば作る(PullRequest歓迎)
- 17. https://github.com/shunjikonishi/odata-
producer をフォーク
環境変数DATABASE_URLに接続先のPostgreSQLの
URLを定義
◦ 現在はPostgreSQL固定になっているので、MySQL等を使う場合
はHerokuEntityManagerFactoryとpersistense.xmlの修正が
必要
サンプルエンティティ(src/…/entities/*.java)を削除
公開したいエンティティをentities以下に定義
いじょ
◦ ローカルでの動作確認はrun.sh(run.bat)でできます。
◦ Herokuで動かす場合は環境変数「APP_OPTS」でBASIC認証が
設定できます。