Apex Web サービス:Web の魔法使いのための構成要素
はじめに:
この記事では、Salesforce でのカスタム Apex Web サービスの作り方を掘り下げます。こうしたサービスは、外部プロセスがデータの取得や書き込みのために Salesforce とやり取りする必要があり、標準の REST API では足りないときに欠かせません。標準的なクエリから更新まで、少しずつ複雑になる五つの例を順に見ていきます。

カスタム Web サービスの概要
カスタム Web サービスの五つの例を見ていきます。
標準 SObject リストを使う GET: 標準の SObject リストでデータを取得します。
JSON レスポンスのラッパー: GET リクエストを JSON レスポンスでラップして強化します。
パラメーターの追加: GET リクエストにパラメーターを加えて、より特定のデータを取得します。
挿入に POST を使う: データを挿入する POST リクエストを実装します。
エラーメッセージを返す: エラーメッセージを適切に処理して返します。
カスタム Web サービスを実装する
例1:標準 SObject リストを使う GET
この例では、カスタム URI を持つ REST リソースを定義し、HTTP 動詞(GET)を指定します。クラスは global として宣言し、簡単なクエリで標準の取引先のリストを返します。

例2:JSON レスポンスのラッパー
クライアントに返すデータを制御するために、レスポンスオブジェクトを使います。SObject のリストを返す代わりに、ID と名前だけを持つ軽量な顧客の表現として、カスタムのレスポンスオブジェクトのリストを返します。

例3:パラメーターの追加
特定の顧客のデータが必要なときは、パラメーターが欠かせません。RestContext.params を読めば顧客 ID を取得でき、それを SOQL の WHERE 句で使ってデータを絞り込めます。

例4:挿入に POST を使う
データを書き込む必要があるときは、POST メソッドを使います。この例では、レスポンスオブジェクトとリクエストオブジェクトを作ります。リクエストオブジェクトは名前を持つ顧客を受け取り、JSON シリアライザーでリクエストを特定のクラスにシリアル化します。新しい取引先を作成して挿入した後、成功のステータスを返します。

例5:エラーメッセージを返す
この例は例4に似ていますが、エラー処理を含みます。例外が起きた場合、エラーを捕捉してリストに加え、ステータスコードを500(または好きな番号)に設定します。

まとめ
これらの例を通じて、Salesforce でカスタム Apex Web サービスを作るための基本的な構成要素を示しました。簡単な GET リクエストから始め、パラメーター、POST リクエスト、エラー処理を加えながら、少しずつ複雑さを増していきました。
お楽しみに
お読みいただきありがとうございました。知識たっぷりの冒険をまたすぐにお届けできるのを楽しみにしています! この www.SteveTechArc.com と YouTube チャンネル @SteveTechArc (opens in a new tab) をお楽しみに。チャンネル登録して、Salesforce と、それをほかのシステムとどう統合できるかの理解を深めてください。
アーキテクト仲間やアーキテクトを目指す人たちと統合の知識を共有して、世界を変える手助けを!
STA 1.8