このページはAIで翻訳されています。コミュニティによるレビューはまだ行われていません。 英語で読む

ブログ · 2023年9月18日 · Steve Simpson · 統合

Apex Web サービス:Web の魔法使いのための構成要素

はじめに:

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

図:Postman から呼び出す五つのカスタム Apex Web サービスの例。レコードのリストを返す GET、レスポンスオブジェクトを使う GET、パラメーター付きの GET、POST、エラーを返す POST

カスタム Web サービスの概要

カスタム Web サービスの五つの例を見ていきます。

標準 SObject リストを使う GET: 標準の SObject リストでデータを取得します。

JSON レスポンスのラッパー: GET リクエストを JSON レスポンスでラップして強化します。

パラメーターの追加: GET リクエストにパラメーターを加えて、より特定のデータを取得します。

挿入に POST を使う: データを挿入する POST リクエストを実装します。

エラーメッセージを返す: エラーメッセージを適切に処理して返します。

カスタム Web サービスを実装する

例1:標準 SObject リストを使う GET

この例では、カスタム URI を持つ REST リソースを定義し、HTTP 動詞(GET)を指定します。クラスは global として宣言し、簡単なクエリで標準の取引先のリストを返します。

Apex コード:取引先をクエリし、デフォルトのシリアル化でリストを返す GET メソッドを持つ REST リソース

例2:JSON レスポンスのラッパー

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

Apex コード:顧客のリストを持つレスポンスオブジェクトを組み立てる GET メソッド

例3:パラメーターの追加

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

Apex コード:リクエストから customerid パラメーターを読み取り、その顧客をレスポンスオブジェクトで返す GET メソッド

例4:挿入に POST を使う

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

Apex コード:リクエスト本文を解析し、取引先を挿入して成功またはエラーのステータスを返す POST メソッド

例5:エラーメッセージを返す

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

Apex コード:エラー処理を含む POST メソッド。エラーメッセージと HTTP 500 ステータスコードを返す

まとめ

これらの例を通じて、Salesforce でカスタム Apex Web サービスを作るための基本的な構成要素を示しました。簡単な GET リクエストから始め、パラメーター、POST リクエスト、エラー処理を加えながら、少しずつ複雑さを増していきました。

お楽しみに

お読みいただきありがとうございました。知識たっぷりの冒険をまたすぐにお届けできるのを楽しみにしています! この www.SteveTechArc.com と YouTube チャンネル @SteveTechArc (opens in a new tab) をお楽しみに。チャンネル登録して、Salesforce と、それをほかのシステムとどう統合できるかの理解を深めてください。

アーキテクト仲間やアーキテクトを目指す人たちと統合の知識を共有して、世界を変える手助けを!

文字起こしには AI を活用

STA 1.8