3

Web サービスを使用して Web API を構築しています。ユーザーは次のように使用できます。 http://www.example.com/example.asmx/hello?param1=str&param2=str

また:

http://www.example.com/example.asmx/hello?param1=str.

param1 を必須にし、param2 をオプションにしたいと考えていますhttp://www.example.com/example.asmx/hello?param1=str。でうまく動作しhttp://www.example.com/example.asmx/hello?param1=str&param2=strます。

[WebMethod]
public string hello(int param1, int param2 = 0)
{
    return "hello!";
}

それを修正する方法はありますか?そうでない場合、パブリック API で非常に一般的なオプションのパラメーターを受け入れる Web API を構築するために使用できる手法は何ですか。私は初心者なので、Web サービスが Web API の構築に適しているかどうかわかりません。どんな助けでも大歓迎です。

4

3 に答える 3

0

問題はおそらく、Web メソッドの場合、このパラメーターが必須であることです。多分これが役立つでしょう。

MinOccurs Attribute Binding SupportおよびDefault Attribute Binding Supportに従って:

  1. 前述の「XSD からソースへの変換」で説明されている指定された命名規則を使用する public bool フィールドを伴う値型 - 出力<element>要素 0 の minOccurs 値。

    [WebMethod]
    public SomeResult SomeMethod(bool optionalParam, [XmlIgnore] bool optionalParamSpecified)
    結果:
    <s:element minOccurs="0" maxOccurs="1" name="optionalParam" type="s:boolean" />

  2. <element>System.Component.DefaultValueAttribute - 出力要素 0の minOccurs 値を介して指定された既定値を持つ値の型。<element>要素では、既定値も既定の XML 属性を介して指定されます。

    [WebMethod]
    public SomeResult SomeMethod([DefaultValue(true)] bool optionalParam)
    結果:
    <s:element minOccurs="0" maxOccurs="1" default="true" name="optionalParam" type="s:boolean" />

于 2017-12-13T01:39:41.753 に答える