viagogo / HalKit

A lightweight .NET library for creating and consuming HAL hypermedia APIs
MIT License
16 stars 8 forks source link

Allow relative links #26

Open Saquith opened 3 years ago

Saquith commented 3 years ago

I ran into an API witih relative links, with some overlapping parts, i.e. https://example.uri.com/endpoint, containing links like /endpoint/example/id. This resulted in some Uri exceptions, since it wasn't a proper full Uri.

It's optionally changed by setting the property AllowRelativeLinks in the IHalKitConfiguration, which results in the LinkResolver creating a new href from the relative path using the absolute path as base.

In the example, it takes the AbsolutePath from the example uri /endpoint and replaces it with the empty string, so the full AbsoluteUri can be joined with the remaining relative path /example/id.