Skip to content

Commit a1bef68

Browse files
author
Bart Koelman
committed
Removed obsolete IJsonApiRequest.BasePath
1 parent 2c222b1 commit a1bef68

File tree

5 files changed

+0
-86
lines changed

5 files changed

+0
-86
lines changed

src/JsonApiDotNetCore/Middleware/IJsonApiRequest.cs

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
using System;
21
using JsonApiDotNetCore.Configuration;
32
using JsonApiDotNetCore.Resources.Annotations;
43

@@ -14,18 +13,6 @@ public interface IJsonApiRequest
1413
/// </summary>
1514
public EndpointKind Kind { get; }
1615

17-
/// <summary>
18-
/// The request URL prefix. This may be an absolute or relative path, depending on <see cref="IJsonApiOptions.UseRelativeLinks" />.
19-
/// </summary>
20-
/// <example>
21-
/// <code><![CDATA[
22-
/// Absolute: https://example.com/api/v1
23-
/// Relative: /api/v1
24-
/// ]]></code>
25-
/// </example>
26-
[Obsolete("This value is calculated for backwards compatibility, but it is no longer used and will be removed in a future version.")]
27-
string BasePath { get; }
28-
2916
/// <summary>
3017
/// The ID of the primary (top-level) resource for this request. This would be null in "/blogs", "123" in "/blogs/123" or "/blogs/123/author".
3118
/// </summary>

src/JsonApiDotNetCore/Middleware/JsonApiMiddleware.cs

Lines changed: 0 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
using System;
2-
using System.Collections.Generic;
32
using System.IO;
43
using System.Linq;
54
using System.Net;
65
using System.Net.Http;
7-
using System.Text;
86
using System.Threading.Tasks;
97
using JetBrains.Annotations;
108
using JsonApiDotNetCore.Configuration;
@@ -13,7 +11,6 @@
1311
using JsonApiDotNetCore.Serialization.Objects;
1412
using Microsoft.AspNetCore.Http;
1513
using Microsoft.AspNetCore.Http.Features;
16-
using Microsoft.AspNetCore.Mvc;
1714
using Microsoft.AspNetCore.Mvc.Controllers;
1815
using Microsoft.AspNetCore.Routing;
1916
using Microsoft.Net.Http.Headers;
@@ -218,7 +215,6 @@ private static void SetupResourceRequest(JsonApiRequest request, ResourceContext
218215
request.Kind = EndpointKind.Primary;
219216
request.PrimaryResource = primaryResourceContext;
220217
request.PrimaryId = GetPrimaryRequestId(routeValues);
221-
request.BasePath = GetBasePath(primaryResourceContext.PublicName, options, httpRequest);
222218

223219
string relationshipName = GetRelationshipNameForSecondaryRequest(routeValues);
224220

@@ -245,58 +241,6 @@ private static string GetPrimaryRequestId(RouteValueDictionary routeValues)
245241
return routeValues.TryGetValue("id", out object id) ? (string)id : null;
246242
}
247243

248-
private static string GetBasePath(string resourceName, IJsonApiOptions options, HttpRequest httpRequest)
249-
{
250-
var builder = new StringBuilder();
251-
252-
if (!options.UseRelativeLinks)
253-
{
254-
builder.Append(httpRequest.Scheme);
255-
builder.Append("://");
256-
builder.Append(httpRequest.Host);
257-
}
258-
259-
if (httpRequest.PathBase.HasValue)
260-
{
261-
builder.Append(httpRequest.PathBase);
262-
}
263-
264-
string customRoute = GetCustomRoute(resourceName, options.Namespace, httpRequest.HttpContext);
265-
266-
if (!string.IsNullOrEmpty(customRoute))
267-
{
268-
builder.Append('/');
269-
builder.Append(customRoute);
270-
}
271-
else if (!string.IsNullOrEmpty(options.Namespace))
272-
{
273-
builder.Append('/');
274-
builder.Append(options.Namespace);
275-
}
276-
277-
return builder.ToString();
278-
}
279-
280-
private static string GetCustomRoute(string resourceName, string apiNamespace, HttpContext httpContext)
281-
{
282-
if (resourceName != null)
283-
{
284-
Endpoint endpoint = httpContext.GetEndpoint();
285-
var routeAttribute = endpoint?.Metadata.GetMetadata<RouteAttribute>();
286-
287-
if (routeAttribute != null && httpContext.Request.Path.Value != null)
288-
{
289-
List<string> trimmedComponents = httpContext.Request.Path.Value.Trim('/').Split('/').ToList();
290-
int resourceNameIndex = trimmedComponents.FindIndex(component => component == resourceName);
291-
string[] newComponents = trimmedComponents.Take(resourceNameIndex).ToArray();
292-
string customRoute = string.Join('/', newComponents);
293-
return customRoute == apiNamespace ? null : customRoute;
294-
}
295-
}
296-
297-
return null;
298-
}
299-
300244
private static string GetRelationshipNameForSecondaryRequest(RouteValueDictionary routeValues)
301245
{
302246
return routeValues.TryGetValue("relationshipName", out object routeValue) ? (string)routeValue : null;
@@ -318,7 +262,6 @@ private static void SetupOperationsRequest(JsonApiRequest request, IJsonApiOptio
318262
{
319263
request.IsReadOnly = false;
320264
request.Kind = EndpointKind.AtomicOperations;
321-
request.BasePath = GetBasePath(null, options, httpRequest);
322265
}
323266
}
324267
}

src/JsonApiDotNetCore/Middleware/JsonApiRequest.cs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,6 @@ public sealed class JsonApiRequest : IJsonApiRequest
1111
/// <inheritdoc />
1212
public EndpointKind Kind { get; set; }
1313

14-
/// <inheritdoc />
15-
public string BasePath { get; set; }
16-
1714
/// <inheritdoc />
1815
public string PrimaryId { get; set; }
1916

@@ -44,9 +41,6 @@ public void CopyFrom(IJsonApiRequest other)
4441
ArgumentGuard.NotNull(other, nameof(other));
4542

4643
Kind = other.Kind;
47-
#pragma warning disable CS0618 // Type or member is obsolete
48-
BasePath = other.BasePath;
49-
#pragma warning restore CS0618 // Type or member is obsolete
5044
PrimaryId = other.PrimaryId;
5145
PrimaryResource = other.PrimaryResource;
5246
SecondaryResource = other.SecondaryResource;

src/JsonApiDotNetCore/Serialization/RequestDeserializer.cs

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -203,9 +203,6 @@ private OperationContainer ParseForCreateOrUpdateResourceOperation(AtomicOperati
203203
var request = new JsonApiRequest
204204
{
205205
Kind = EndpointKind.AtomicOperations,
206-
#pragma warning disable CS0618 // Type or member is obsolete
207-
BasePath = _request.BasePath,
208-
#pragma warning restore CS0618 // Type or member is obsolete
209206
PrimaryResource = primaryResourceContext,
210207
OperationKind = kind
211208
};
@@ -329,9 +326,6 @@ private OperationContainer ParseForDeleteResourceOperation(AtomicOperationObject
329326
var request = new JsonApiRequest
330327
{
331328
Kind = EndpointKind.AtomicOperations,
332-
#pragma warning disable CS0618 // Type or member is obsolete
333-
BasePath = _request.BasePath,
334-
#pragma warning restore CS0618 // Type or member is obsolete
335329
PrimaryId = primaryResource.StringId,
336330
PrimaryResource = primaryResourceContext,
337331
OperationKind = kind
@@ -366,9 +360,6 @@ private OperationContainer ParseForRelationshipOperation(AtomicOperationObject o
366360
var request = new JsonApiRequest
367361
{
368362
Kind = EndpointKind.AtomicOperations,
369-
#pragma warning disable CS0618 // Type or member is obsolete
370-
BasePath = _request.BasePath,
371-
#pragma warning restore CS0618 // Type or member is obsolete
372363
PrimaryId = primaryResource.StringId,
373364
PrimaryResource = primaryResourceContext,
374365
SecondaryResource = secondaryResourceContext,

test/UnitTests/Middleware/JsonApiRequestTests.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ public async Task Sets_request_properties_correctly(string requestMethod, string
7070
request.IsCollection.Should().Be(expectIsCollection);
7171
request.Kind.Should().Be(expectKind);
7272
request.IsReadOnly.Should().Be(expectIsReadOnly);
73-
request.BasePath.Should().BeEmpty();
7473
request.PrimaryResource.Should().NotBeNull();
7574
request.PrimaryResource.PublicName.Should().Be("todoItems");
7675
}

0 commit comments

Comments
 (0)