SOAP Web サービスでパフォーマンスの問題が発生しています。Web サービスは Spyne で構築されています。
大きな SOAP オブジェクトをクライアントに送信するため、インターフェイスが必要なデータのみを返すようにインターフェイスを変更することで問題を解決できると思います。
例:
多くのプロパティを持つファブリック ソープ オブジェクトがあります。以下を参照してください。
class Fabric(ComplexModel):
__namespace__ = 'vadain.webservice.curtainconfig'
id = Mandatory.Integer
"Fabric ID"
articleNumber = String
"Article Number"
name = Mandatory.Unicode
"Fabric Name"
color = Mandatory.Unicode
"Color"
width = Float
"Fabric Width"
widthType = WidthType
"Width Type"
supplier = Mandatory.Unicode
supplierId = Integer
"Supplier"
ETC.
そして、はるかに!!
ファブリックを検索してファブリックを取得する 2 つのインターフェイスを実装しました。以下を参照してください。
ファブリックを検索:
@rpc(Unicode, _returns=soap.Fabric.customize(max_occurs='unbounded'))
def fabricsWithName(ctx, name):
--Code to get all fabrics with name
return fabrics
生地を入手する:
@rpc(Integer, _returns=soap.Fabric)
def getFabric(ctx, fabric_id):
--Code to get fabric from ID
return fabric
ファブリックを焼き付けるインターフェイスは、ファブリックのすべてのプロパティを返しますが、これは必須ではありません。ファブリック名と ID のみが返されるように変更できます。
インターフェイス「fabricsWithName」がファブリックの名前と ID のみを返すようにこれを変更するにはどうすればよいですか?これによりパフォーマンスの問題が解決されますか?