##前提
・今回の備忘録は下記のModule
https://trailhead.salesforce.com/ja/content/learn/modules/apex_integration_services/apex_integration_webservices
・筆者のレベルは最近Rangerになったばかりの初心者
・RESTのこともよくわかってない
・回答は載せない(あくまでもつまづきポイントのみ)
##苦労ポイントその1
参照関係があることにより特殊なURLMappingが必要だった。
Module内ではCaseを指定するだけで良かったためURLのマッピングがシンプルで良かった。
しかし、ハンズオンでは参照関係のあるAccountとContactを意識しなければならないのでどのようなURLになるかを知っている必要がある。
誤答
@RestResource(urlMapping='Accounts')
正答
@RestResource(urlMapping='/Accounts/*/contacts')
##苦労ポイントその2
AccountIdを取り出すのに間に挟まれたIdを取る方法がわからなかった。
その1からURLは下記のような構造になり、Trailを進めているだけではわからなかった。
'https://yourdomain.my.salesforce.com/services/apexrest/Accounts/' + AccountId + '/contacts';
取り出し方は
String accountId = request.requestURI.substringBetween('/Accounts/', '/contacts');
##以上
Trailheadはこういうところで躓く人が自分以外にもいるんじゃないかと思って記事を作成してみました。
これで少しでもハンズオンチャレンジで余計な時間をかける人が減ればなと思います。