1

JsonServiceClientを使用して、手動で自動クエリ要求を作成しようとしています。コードはほとんどの操作で非常にシンプルですが、フィルタの適用方法はわかりません。ServiceStack AutoQuery手動でフィルタを送信

var client = new JsonServiceClient('https://my-app.azurewebsites.net'); 
var req = new dto.something(); 
req.pageSize = 10; 
req.skip = 0; 
req.take = 10; 

フィルタが表示されないのはどうですか?

export class QueryBase { 
    // @DataMember(Order=1) 
    skip: number; 

    // @DataMember(Order=2) 
    take: number; 

    // @DataMember(Order=3) 
    orderBy: string; 

    // @DataMember(Order=4) 
    orderByDesc: string; 

    // @DataMember(Order=5) 
    include: string; 

    // @DataMember(Order=6) 
    fields: string; 

    // @DataMember(Order=7) 
    meta: { [index: string]: string; }; 
} 

最後には、Javascript/typescriptですクライアントのToPostUrl/ToGetUrlアナログがある:ここでは

はQueryBaseの実装ですか?サービスを問い合わせるための

答えて

2

新しいサポートがサービスを照会するときに、例えば、追加の引数を追加できますTypeScript JsonServiceClient0.0.23に追加されました:

var request = new dto.MyQuery(); 

client.get(request, {MyField:"TheFilter"}) 
    .then(r => {}); 

それはまた、相対的または絶対的でコールサービスをできるようになります例えば、オプションのqueryString引数を持つURL:

client.get<Response>("/my-request/foo") 

client.get<Response>("http://example.org/my-request/foo") 

client.get<Response>("/my-request", { arg: "foo"}) 

ServiceStackだけ型付きpropertを生成することができますExplicit Conditions on your AutoQuery Request DTOの場合

var url = $.ss.createUrl("https://my-app.azurewebsites.net/myquery", 
    {pageSize:10,take:10,MyField:"TheFilter"}); 

$.getJSON(url, function(r) { 
    console.log(r.Results); 
}); 

同様のURLヘルパーは例えば、またservicestack-client NPMパッケージで用意されています:

例えば、URLを作成することができたのJavaScript /活字体にはToPostUrl/ToGetUrl相当はありませんが、いくつかのURL helpers in ss-utilsがある

import { combinePaths, nameof, appendQueryString } from 'servicestack-client'; 

let baseUrl = "https://my-app.azurewebsites.net"; 
let requestDto = new MyQuery(); 
requestDto.take = 10; 

let pathInfo = combinePaths(baseUrl, "json", "reply", nameof(requestDto)); 
let url = appendQueryString(pathInfo, requestDto); 
+0

JsonServiceClientが自動問合せを送信するのに適していないと言っていますか?文字通りのURLを使用するのではなく、typescriptを使用してクエリ要求を作成することができればうれしいです。 – lucuma

+0

@lucuma Typed Request DTOを送信するためのものです。リクエストDTOにプロパティを追加すると、生成されたTypeScript DTOにそのプロパティが表示されます。 – mythz

+0

私はあなたの意見を理解しただけです、そのskip、take、orderbyなどはクエリベースにありますが、フィルタはそうではないので何かが欠けていると思いました。 – lucuma

関連する問題