ServiceStackのServiceClientを使用する

Atle Kristiansen

別のスレッドで、ServiceStackAPIを使用するときにServiceClientを使用することをお勧めしました。

次のような任意のタイプのオブジェクトを投稿できるテンプレート関数を作成したいと思います。

public Post2<T>(object: T, url: string, httpOptions)
{
try
{
  var client = new JsonServiceClient(`${environment.apiEndpoint}` + url)
  client.headers = httpOptions;
  client.post<T>(object);

}
catch(e)
{

}

}

問題は、「タイプTの引数はタイプIReturnのパラメーターに割り当てることができない」ということです。

typescript-ref http://techstacks.ioは、次のDTOを生成しました(この目的のために)

// @Route("/Equipments", "POST")
export class CreateEquipment
{
    public name: string;
}

// @Route("/Equipments/{Name}", "GET")
export class GetEquipment implements IReturn<Equipment>
{
    public name: string;
    public createResponse() { return new Equipment(); }
    public getTypeName() { return 'GetEquipment'; }
 }

 // @Route("/Equipments", "GET")
 export class GetEquipments implements IReturn<Equipment[]>
{
    public createResponse() { return new Array<Equipment>(); }
    public getTypeName() { return 'GetEquipments'; }
}

// @Route("/Equipments/{Name}", "DELETE")
export class DeleteEquipment
{
    public name: string;
}

次のコードを使用してPostリクエストを作成しようとしました。

var request = new CreateEquipment();
request.name = equipment.name;
var client = new JsonServiceClient(environment.apiEndpoint);
var response = await client.post(request);

これにより、VS17でエラーが発生します。タイプ「CreateEquipment」の引数をタイプ「IReturn <{}>」のパラメータに割り当てることはできません。プロパティcreateResponseがタイプ「CreateEquipment」にありません

私が推測するのは、ServiceModelに何かが欠けていることを意味します

神話

ServiceStackのTypeScriptサービスクライアント、ServiceStackホストが配置されている場所BaseUrlのみ構築する必要があります。引数を指定しない場合は/、デフォルトで使用されます。

var client = new JsonServiceClient(environment.apiEndpoint);

また、npmutilをインストールして生成できるServiceStackサービスからTypeScriptで生成されたDTOで使用する必要があります@servicestack\cli

$ npm install -g @servicestack/cli

その後から、あなたのサーバーのDTOを生成するためにそれを使用してBASEURL(environment.apiEndpointと同じでなければなりません):

$ typescript-ref http://example.org

次に、それを使用して、入力されたリクエストDTOを送信できます。

var request = new MyRequest();
var response = await client.post(request);

ServiceStackサービスにはIReturn<T>、サービス応答DTOを指定する(またはIReturnVoid)インターフェイスマーカーで注釈を付ける必要があることに注意してください

URLを使用してAPIリクエストを行うこともできますが返される応答DTOタイプを指定する必要があります(例:

client.get<GetTechnologyResponse>("/technology", { Slug: "ServiceStack" }) 

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Microsoft.Rest.ServiceClientでシングルトンHttpClientを使用する-System.MissingMethodExceptionを取得する

分類Dev

ServiceStack:分散RedisEventsを使用する方法は?

分類Dev

servicestackの先頭の@文字を使用してJSONを逆シリアル化する

分類Dev

C#でMicrosoft.Rest.ServiceClientから派生したクライアントにシングルトンを使用する必要がありますか?

分類Dev

ServiceStackで既存のASP.NETCore AuthenticationHandlerを使用することは可能ですか?

分類Dev

ServiceStackを使用して最初のクライアントを構築する

分類Dev

ServiceStackを使用して複数のRedisインスタンスに接続する

分類Dev

ServiceStack.OrmLite.PostgreSQLで最新バージョンのNpgsqlを使用する

分類Dev

ServiceStackクライアントを使用しているときにServiceStackサービスから401の応答を受け取るのはなぜですか

分類Dev

Servicestackを使用してRabbitMQキューにTTLを設定する

分類Dev

複数のServiceStackの認証プロバイダーを使用するとエラーが発生します

分類Dev

ServiceStackを使用してjsonをいくつかのDataContractの1つに逆シリアル化する方法

分類Dev

スコープ付きJsConfigを使用してServiceStackのHttpErrorを返す/スローする方法は?

分類Dev

servicestackタイプのクライアントを使用するにはどうすればよいですか?

分類Dev

ServiceStackの証明書を使用してクライアントを認証する方法は?

分類Dev

ServiceStackを使用してサービス呼び出しの削除を実装する方法

分類Dev

ServiceStack IServiceGatewayメソッドを正しく使用する方法は?

分類Dev

ServiceStackおよびRabbitMQでRoutingKeyを使用する方法

分類Dev

servicestackでwsdlSOAPサービスを使用する

分類Dev

.NetCoreのServiceStack.OrmLiteでSqlGeographyを使用します

分類Dev

ServiceStack.Loggingから現在のユーザーを取得する方法

分類Dev

ServiceStack ExceptionHandlerで実際のhttpstatuscodeをスローする方法は?

分類Dev

ServiceStackホストに対してのみ `EncryptedMessage`を許可する

分類Dev

(ServiceStack)ServiceA内で(ServiceStack)ServiceBを「共有」/解決するのは悪い考えですか?

分類Dev

servicestack ormliteJoinSqlBuilderを使用するにはどうすればよいですか

分類Dev

Angularを使用したServiceStackへの認証

分類Dev

ServiceStackのResponseDTOを使用したAutoQuery

分類Dev

RedisMQを使用したServiceStackの設計

分類Dev

ServiceStackにストリームを送信する方法は?(IRequiresRequestStreamを使用する場合、RequestStreamの長さは常にゼロです)

Related 関連記事

  1. 1

    Microsoft.Rest.ServiceClientでシングルトンHttpClientを使用する-System.MissingMethodExceptionを取得する

  2. 2

    ServiceStack:分散RedisEventsを使用する方法は?

  3. 3

    servicestackの先頭の@文字を使用してJSONを逆シリアル化する

  4. 4

    C#でMicrosoft.Rest.ServiceClientから派生したクライアントにシングルトンを使用する必要がありますか?

  5. 5

    ServiceStackで既存のASP.NETCore AuthenticationHandlerを使用することは可能ですか?

  6. 6

    ServiceStackを使用して最初のクライアントを構築する

  7. 7

    ServiceStackを使用して複数のRedisインスタンスに接続する

  8. 8

    ServiceStack.OrmLite.PostgreSQLで最新バージョンのNpgsqlを使用する

  9. 9

    ServiceStackクライアントを使用しているときにServiceStackサービスから401の応答を受け取るのはなぜですか

  10. 10

    Servicestackを使用してRabbitMQキューにTTLを設定する

  11. 11

    複数のServiceStackの認証プロバイダーを使用するとエラーが発生します

  12. 12

    ServiceStackを使用してjsonをいくつかのDataContractの1つに逆シリアル化する方法

  13. 13

    スコープ付きJsConfigを使用してServiceStackのHttpErrorを返す/スローする方法は?

  14. 14

    servicestackタイプのクライアントを使用するにはどうすればよいですか?

  15. 15

    ServiceStackの証明書を使用してクライアントを認証する方法は?

  16. 16

    ServiceStackを使用してサービス呼び出しの削除を実装する方法

  17. 17

    ServiceStack IServiceGatewayメソッドを正しく使用する方法は?

  18. 18

    ServiceStackおよびRabbitMQでRoutingKeyを使用する方法

  19. 19

    servicestackでwsdlSOAPサービスを使用する

  20. 20

    .NetCoreのServiceStack.OrmLiteでSqlGeographyを使用します

  21. 21

    ServiceStack.Loggingから現在のユーザーを取得する方法

  22. 22

    ServiceStack ExceptionHandlerで実際のhttpstatuscodeをスローする方法は?

  23. 23

    ServiceStackホストに対してのみ `EncryptedMessage`を許可する

  24. 24

    (ServiceStack)ServiceA内で(ServiceStack)ServiceBを「共有」/解決するのは悪い考えですか?

  25. 25

    servicestack ormliteJoinSqlBuilderを使用するにはどうすればよいですか

  26. 26

    Angularを使用したServiceStackへの認証

  27. 27

    ServiceStackのResponseDTOを使用したAutoQuery

  28. 28

    RedisMQを使用したServiceStackの設計

  29. 29

    ServiceStackにストリームを送信する方法は?(IRequiresRequestStreamを使用する場合、RequestStreamの長さは常にゼロです)

ホットタグ

アーカイブ