1

複数のドキュメントソースによると、ルートは DTO の属性として定義できます。次の DTO があります (最後の DTO は別のファイルにあります)。

[Route("/hdos", "GET")]
public class GetHdos
{
    public bool IncludeAdminUsers { get; set; }
}

[Route("/hdos/{Id}", "GET")]
public class GetHdo
{
    public Guid Id { get; set; }
}

[Route("/hdos/{HdoId}/facilities", "GET")]
public class GetHdoFacilities
{
    public Guid HdoId { get; set; }
}

次のサービスに格納されています (最後のサービスは別のファイルにあります)。

public object Get(GetHdos request)
{
    return _hdos.GetAll(request.IncludeAdminUsers);
}

public object Get(GetHdo request)
{
    return _hdos.GetById(request.Id)
}

public object Get(GetHdoFacilities request)
{
    return _hdos.GetFacilities(request.HdoId);
}

いずれかへの呼び出し

/hdos
/hdos/a82b955195e34bfda2fdde7da68f8992
/hdos/a82b955195e34bfda2fdde7da68f8992/facilities

を返しますMethod not supported。しかし、それらをクラス名として呼び出すと、ルートがヒットします。足りないものはありますか?何らかの方法でこれらのルートを有効にする必要がありAppHostますか?

4

1 に答える 1

2

ServiceStack は、REST タイプと HTTP タイプでルートを異なる方法でマッピングしているようです。質問の中で、私が電話したことについては言及しませんでしJson/syncreply/hdosJson/syncreply。私は間違っていた。これを行うと、ルートとして DTO クラス名が検索されます。

DTO で宣言されたルートを属性として使用するには、単にルートを呼び出し、json/syncreply. 逆はドキュメントに直接記載されていませんが、それでも混乱しました。

于 2013-05-03T16:40:59.903 に答える