Rakuten.RMS.Api client library for .NET Framework
楽天RMS WEB API へ接続するための .NET Framework クライアント用ライブラリです。
楽天RMSは楽天出店者が商品や注文の管理を行うウェブプラットフォームです。RMSでは出店者用にWEB APIが公開されており APIを通じて商品、注文、在庫などほとんどの管理を行うことができます。
本ライブラリは、このRMS WEB APIへ接続をサポートする .NET Framework で動作するクライアントライブラリです。
動作環境
- .NET Framework 4.8
- Newtonsoft Json.NET (latest version)
- (Python.NET)
.NET Framework 4.8 環境で動作確認しています。メッセージの JSON 処理に Json.NET を使用しています。 また、Python.NET を使うことで、python からこのライブラリを使用することができます。
python (Python.NET) での使用方法について
使用方法
ServiceProvider クラスがクライアントの認証情報とカテゴリ別のAPIへアクセスするクラスへのアクセスを提供します。
using Rakuten.RMS.Api;
var provider = new ServiceProvider( serviceSecret, licenseKey );
serviceSecret と licenseKey はRMSのAPI設定から取得できる認証用の文字列です。
各カテゴリ別のAPI群へのアクセスは ServiceProvider のメソッドからオブジェクトを取得します。APIの分類別にアクセスするためのクラスが対応します。
var api = provider.GetItemAPI20();
メソッドの実装ルール
APIグループごとに、設計上の違いから、メソッドの命名方法、エラー処理等に関して作法の違いがあります。.NET への実装は基本的に次のようなルールに則っています。
- オリジナルの仕様で定義されている内容を尊重
- C# 形式、また [動詞][目的語] (GetItemなど) の順になるように定義しなおし
- メソッド名やオブジェクト名で、一部直感的に理解しにくいもの、英語の単数形・複数形の違いが実際に即していないものなど、あえて名前を変える
- 1つのメソッド呼び出しで、複数の種類の情報が取得できる場合、メソッドを別々に実装して 1メソッド、1種類の情報の取得を原則とする。
- パラメータが少ない場合は、リクエストをクラスオブジェクトにまとめるのではなく、メソッドのパラメータとして展開
エラー処理
エラーの形式はAPIグループごとに異なり、そのフォーマット、エラーコードの定義などもそれぞれ異なり統一されいません。このAPIライブラリでは基本的な考え方として、正常時以外はすべて例外として throw することにしています。一部のAPIグループでは、応答メッセージの中にエラーが内包されるものがあります。この場合はエラーであっても例外にならず応答メッセージをそのまま返す仕様となっています。
RakuteRMSApiException
class RakutenRMSApiException がすべての例外のベースクラスとなっています。この例外を捕捉することでエラー処理を行うことができます。HTTPなどネットワークレベルのエラーの場合 .NET の System.Net.WebException などの例外が飛ぶことがあります。
各APIグループごとのエラーのフォーマットに対応するため各APIグループごとに
RakuteRMSApiException の派生クラスを定義している場合があります。より詳細なえらーを参照するためには個別の例外クラスを捕捉します。
グループ別解説とクラスリファレンス
Rakuten.RMS.Api.CabinetAPI
Rakuten.RMS.Api.CategoryAPI20
Rakuten.RMS.Api.InventoryAPI20
RakutenInventoryServiceV2 クラスリファレンス
Rakuten.RMS.Api.InventoryAPI21
RakutenInventoryServiceV21 クラスリファレンス
Rakuten.RMS.Api.ItemAPI20
Rakuten.RMS.Api.LicenseManagementAPI
LicenseManagementAPI クラスリファレンス
Rakuten.RMS.Api.NavigationAPI20
Rakuten.RMS.Api.ProductAPI
Rakuten.RMS.Api.RakutenPayOrderAPI
RakutenPayOrderService クラスリファレンス