3

OpenRastaでコーデックのURIファイル拡張子を使用する場合、ORはURIを解決できず、404を返します。ファイル拡張子がないと、すべて問題なく動作します。

コーデックはオブジェクトリソース用に定義されており、XmlDataContractとJsonDataContractの両方を使用しています。.xmlまたは.json拡張子を使用しない場合、これはInMemoryHost(テストに使用)とASP.Net(IIS7、統合モード)の両方に適用されます。

コーデック構成:

ResourceSpace.Has.ResourcesOfType<object>()
                .WithoutUri
                .AsXmlDataContract()
                .And.AsJsonDataContract();

uriファイル拡張子を機能させるために行う必要がある他の何かがありますか?

4

1 に答える 1

4

.xml、.json 機能を公開するには、ContentTypeExtensionUriDecorator を UriDecorator として OpenRasta に登録する必要があります。

以下の例では、http リクエストを次のように行うことができます。

/home.json を取得

/home.xml を取得

public class RastaConfig : IConfigurationSource
{
    public void Configure()
    {
        using(OpenRastaConfiguration.Manual)
        {
            ResourceSpace.Uses.UriDecorator<ContentTypeExtensionUriDecorator>();

            ResourceSpace.Has.ResourceOfType<Home>()
                .AtUri("/home")
                .HandledBy<HomeHandler>()
                .AsXmlDataContract()
                .And.AsJsonDataContract();
        }
    }
}

これは、通常、クライアントが HTTP Accept ヘッダーを追加して、サポートし関心のあるコンテンツ タイプを定義するためです。

詳細については、コンテンツ ネゴシエーション (しばしば conneg と呼ばれます) について Web で読むことができます。

次に、OpenRasta は、HTTP Accept ヘッダーのクライアントの設定に基づいて、返されるコンテンツ タイプを選択します。

お役に立てれば。

于 2011-02-10T16:44:22.687 に答える