2

XMLまたはJSONでシリアル化された異なるスキーマを持つ複数の異なるAPIがあり、標準化されたスキーマとして出力する必要があります。

必要な主な機能:

  • XMLとJSONへのシリアル化
  • 認証
    • つまり、正しいユーザー+パスがないと、データを取得/設定できません
  • 役割/範囲の制限
    • つまり、データベース内のすべてにアクセスすることはできません。自分の役割で許可されているものだけにアクセスできます。
  • 異なるスキーマ間の取得/設定(変換)
    • つまり、入力APIに関係なく、リクエストした出力APIでフォーマットすることができます

または視覚的にそれを置くために:

Server1>[SOAP1.1として送信]>[マイサーバー]>[Server3はServer3スキーマでXMLとして受信]

Server3>[XMLとして送信]>[マイサーバー]>[Server1はServer1スキーマでSOAP1.1として受信します]


またはプログラムでそれを置くために:

id=MyServer.read.SOAP[Server1.schema](Server1).id
MyServer.send.XML[Server2.schema](data_get(id), Server2)

読み取りをオンデマンドで利用できるように、受信したすべてのデータをモデル(データベース)に保存する必要があります。

これは、 TastyPieを使用したSlumberが最適な問題の一種ですか?

または、お勧めする別のライブラリはありますか?

4

1 に答える 1

1

これは、2つの理由で見た目よりも難しいです:1)SOAPとRESTは異なるパラダイム(メッセージパッシングvのリソースベース)であるため、簡単なマッピングがないものがいくつかあります。2)関連するAPIのいずれかがある場合は保守性を組み込む必要があります変化する。

再ルーティングとアクセス制御を行う中間層サービスを導入することは間違いなく理にかなっています。TastyPieとSlumberは、残りのAPI自体を作成するのに役立ちますが、SOAPAPIも並行して公開したいようです。したがって、中間層の共通データ構造にpysimplesoapやSOAPyなどが必要になる可能性があります。(もしあなたが途中でSOAPを取り除くことができれば、あなたの人生はずっと楽になるでしょう:))。

ユーザーベースがすべてのバックエンドサービスで同じである場合でも、ユーザー名のパスワードは意味がありますが、異なるユーザーが異なるサービスに対して異なる権限を持っている場合は、oAuthライブラリを使用してoAuthのようなものを配置し、追跡する方がよい場合があります。各ユーザーの権利の独立した。

于 2012-05-03T08:15:11.437 に答える