2016-04-27 6 views
2

私はService Stackを初めて使用しており、私たちが持っているサービススタックアプリケーション用のプラグインライブラリを作成しています。 サービススタックプラグインから新しいエンドポイントを追加するにはどうすればよいですか?

は現在、私は、それが呼び出さ取得コードと理想的にはエンドポイントが登録されているが、私はブレークポイントを追加すると、このクラス

public class MyPlugin : IPlugin { 

    public void Register(IAppHost appHost){ 

     appHost.Routes.Add<MyPluginRequest>("/myendpoint", ApplyTo.Get); 

    } 
} 

を持っており、それを歩きます。しかし、メタデータページがプルアップすると、エンドポイントはリストされず、/ myendpoint URLにナビゲートできなくなります。

これは私が持っているサービスですが、Apiには見えません。

public class MyPluginService : Service { 

    public MyPluginResponse Get(MyPluginRequest request){ 

     ///... implementation details 
    } 

} 

UPDATE

私はレジスタ機能にこのコードを追加:

appHost.GetPlugin<MetadataFeature>().AddPluginLink("myendpoint/", "endpoint custom"); 

だから、それはメタデータページに表示されますが、リンクに移動するとき、私はまだ取得していますエラー

サービス 'MyPluginRequest'を解決できません

答えて

3

Routes.Add APIは、既存のサービスのカスタムルート登録用です。あなたが動的にサービスを登録したい場合は、代わりにRegisterService<T> APIを使用してserviceTypeを指定する必要があり、例えば:

appHost.GetPlugin<MetadataFeature>() 
    .AddPluginLink("/myendpoint", "My Custom Endpoint"); 

public class MyPlugin : IPlugin 
{ 
    public void Register(IAppHost appHost) 
    { 
     appHost.RegisterService<MyPluginService>("/myendpoint"); 
    } 
} 

AddPluginLinkは、メタデータのみのページへのリンクを追加します

関連する問題