APIはじめに皆さんこんにちは。Blogはデビュー戦の植松です。TerraSkyも新入社員が入社して4ヶ月が経ちました。それでは、本題に入りましょう。REST」になります。REST」が気になったので取り上げてみました。REST」を使用する想定で設計していきたいと思います。サンプルアプリの簡単な仕様をまとめていきたいと思います。概要Salesforceのユーザ情報を取得して、指定したユーザの行動情報を表示します。行動情報の取得はユーザ権限ではなくシステム権限で実行デザインプロト要件だけでは分かりにくいのでデザインプロトを作成してみました。デザインセンスはありませんが、デザイン工程も自分でやってみたいので、いろいろと試行錯誤しています。3」とWEBサービスの「inVision」を使用してみました。サンプルアプリ実装イメージは伝わりましたでしょうか。REST」を使用するのか確認していきましょう。APIを始め、豊富にAPIが提供されています。APIをコール想定で設計します。APIを使用すればほとんどの実装したい機能は実現可能かと思われます。以下の点は制限事項であると考えています。APIでデータを取得したうえで、クライアントサイド側で複雑なロジックを実装する必要があります。同じような機能をAndroidアプリやHybridアプリ、WEBアプリケーション等に今後展開する可能性があります。一度クライアントサイドで処理を実装してしまっていると、他のアプリを作成する際にまた同じ機能を別の言語で実装しなければいけないという状況になりかねません。モバイル対策モバイル開発においては以下の点を考慮して設計する必要があります。RESTを検討致しました。APIを拡張し、Apexで実装したメソッドをコールすることができる機能となります。サンプルを見て頂きましょう。ポイントは「@RestResource(urlMapping='/sample/*')」と「@HttpGET」アノテーションとなります。APIをコールすることができるようになります。「accounts」が「@HttpGET」アノテーションで実装したメソッド名になります。Workbenchを用いて確認してみましょう。sharingなのでアクセス可。APIで取引先を取得(共有設定:非公開。アクセス権が無いため0件。)終わりに上記の要領で、こちらのドキュメントを元にサンプルアプリの要件を満たすAPIを実装してみました。作成したAPIのレスポンスは以下のようになりました。今回のサンプルのAPIを作成するにあたって意識したポイントは以下の点となります。URIにバージョン番号を設定してバージョン管理できるように考慮クライアント側のAPIコールを少なくするために、内部クラスを定義して返却するデータ構造をサーバサイドで定義クライアント側で設定したパラメータで処理を分岐(現在地情報を渡すと行動に関連する取引先にある位置情報を参照し距離を算出する。RESTで実行ユーザ権限ではなく、システム権限でデータアクセスするような場合は実装によっては注意が必要になります。RESTFullな設計に反する実装になるかもしれませんが、APIコール数やパフォーマンスを意識した設計も場合によっては必要かと思います。検索クラウドやるならテラスカイ。求む!Salesforce開発エンジニア。