@@ -43,7 +43,7 @@ internal static PreprocessResult PreprocessRequest(
4343 } ;
4444 }
4545
46- PrepareUrlPathBuilder ( jsonApi , request , config , resource ) ;
46+ PrepareUrlPathBuilder ( jsonApi , request , config ) ;
4747
4848 return jsonApi . PreprocessContent ( content , resource , request . RequestUri ) ;
4949 }
@@ -77,27 +77,26 @@ protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage
7777 private static void PrepareUrlPathBuilder (
7878 JsonApiSerializer jsonApiSerializer ,
7979 HttpRequestMessage request ,
80- JsonApiConfiguration config ,
81- ApiResource resource )
80+ JsonApiConfiguration config )
8281 {
83- var result = config . UrlPathBuilder ;
84- if ( resource == null )
82+ if ( config . UrlPathBuilder != null )
8583 {
86- result = result ?? new DefaultUrlPathBuilder ( ) ;
84+ jsonApiSerializer . UrlPathBuilder = config . UrlPathBuilder ;
8785 }
88- else if ( ! request . Properties . ContainsKey ( "MS_RequestContext" ) )
86+ else if ( ! request . Properties . ContainsKey ( Constants . WebApiRequestContextPropertyName ) )
8987 {
90- result = result ?? new DefaultUrlPathBuilder ( ) ;
88+ jsonApiSerializer . UrlPathBuilder = new DefaultUrlPathBuilder ( ) ;
9189 }
9290 else
9391 {
94- var routeTemplate = ( request . Properties [ "MS_RequestContext" ] as HttpRequestContext )
95- ? . RouteData . Route . RouteTemplate ;
96- result = result ?? new DefaultUrlPathBuilder (
97- routeTemplate , resource ) ;
98- }
92+ var requestContext = request . Properties [ Constants . WebApiRequestContextPropertyName ]
93+ as HttpRequestContext ;
94+ var routeTemplate = requestContext ? . RouteData . Route . RouteTemplate ;
95+ var virtualPathRoot = requestContext ? . VirtualPathRoot ?? "/" ;
9996
100- jsonApiSerializer . UrlPathBuilder = result ;
97+ jsonApiSerializer . UrlPathBuilder = new DefaultUrlPathBuilder (
98+ virtualPathRoot , routeTemplate ) ;
99+ }
101100 }
102101
103102 private static void PrepareQueryContext (
0 commit comments