2

サービスを自動的にルーティングできないようです。MetaData には利用可能なすべてのクラスとサービスが表示されますが、/api/btbCustomerEvents にアクセスすると、未処理のルート エラーが発生します。

私はこれを試しました:

[Alias("btbCustomerEvents")]
[RestService("/btbCustomerEvents")]
public class Btbcustomerevent : BaseModel

私の AppHost は次のようになります。

public class AppHost: AppHostBase
{       
    public AppHost() : base("Energy System API", typeof(DepartmentService).Assembly) { }

    public override void Configure(Funq.Container container)
    {
        //Set JSON web services to return idiomatic JSON camelCase properties
        ServiceStack.Text.JsConfig.EmitCamelCaseNames = true;

        //register all routes
        Routes
            .Add<Department>("/Departments")
            .Add<Department>("/Departments/{Id}")
            .Add<Paymentmethod>("/PaymentMethods")
            .Add<Paymentmethod>("/PaymentMethods/{Id}")
            .Add<MyExampleModel>("/MyExampleModel")
            .Add<MyExampleModel>("/MyExampleModel/{Id}");

        //Change the default ServiceStack configuration
        SetConfig(new EndpointHostConfig{ DebugMode = true, });

        container.Register<ICacheClient>(new MemoryCacheClient());
        container.Register<ISessionFactory>(c => 
            new SessionFactory(c.Resolve<ICacheClient>()));

        ControllerBuilder.Current.SetControllerFactory(new FunqControllerFactory(container));
    }

    public static void Start()
    {
        new AppHost().Init();
    }

すべてのルートを追加したくありません。データベースからモデルを作成する TT ファイルを作成し、残りのサービス / CRUD スタイルも自動的に追加します。それぞれを手動で追加する必要があるのは残念です。そして各ルート。

これに対する解決策はありますか?

ありがとう

4

1 に答える 1

2

はい、ルートの自動登録は既に ServiceStack に組み込まれています。拡張メソッドを使用して、Routes.AddFromAssembly()指定されたアセンブリ内のすべてのサービス (実装しているすべての動詞) のカスタム ルートを登録します。次に例を示します。

//    /{RequestDto}
//    /{RequestDto}/{Id} - if Id exists
Routes.AddFromAssembly(typeof(Department).Assembly);            

ヒューリスティックが異なる場合に独自のルートを自動登録する方法のテンプレートについては、Routes.AddFromAssembly()の実装を参照してください。

于 2012-07-16T18:51:17.187 に答える