#### [Abblix\.Oidc\.Server](https://www.abblix.com/en/docs/api/abblix-oidc-server 'index')
### [Abblix\.Oidc\.Server\.Endpoints\.Authorization\.RequestFetching](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.RequestFetching 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.RequestFetching')

## IAuthorizationRequestFetcher Interface

Defines an interface for fetching the details of an authorization request, potentially including resolving and
validating a request object\.

```csharp
public interface IAuthorizationRequestFetcher
```

Derived  
↳ [CompositeRequestFetcher](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.RequestFetching.CompositeRequestFetcher 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.RequestFetching\.CompositeRequestFetcher')  
↳ [PushedRequestFetcher](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.RequestFetching.PushedRequestFetcher 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.RequestFetching\.PushedRequestFetcher')  
↳ [RequestObjectFetchAdapter](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.RequestFetching.RequestObjectFetchAdapter 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.RequestFetching\.RequestObjectFetchAdapter')  
↳ [RequestUriFetcher](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.RequestFetching.RequestUriFetcher 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.RequestFetching\.RequestUriFetcher')
### Methods

## IAuthorizationRequestFetcher\.FetchAsync\(AuthorizationRequest\) Method {#Abblix.Oidc.Server.Endpoints.Authorization.RequestFetching.IAuthorizationRequestFetcher.FetchAsync(Abblix.Oidc.Server.Model.AuthorizationRequest)}

Asynchronously fetches and processes the authorization request, which may involve resolving a request object
from a URI or directly from the request parameters\.

```csharp
System.Threading.Tasks.Task<Abblix.Utils.Result<Abblix.Oidc.Server.Model.AuthorizationRequest,Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.AuthorizationRequestValidationError>> FetchAsync(Abblix.Oidc.Server.Model.AuthorizationRequest request);
```
#### Parameters

###### `request` [AuthorizationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.AuthorizationRequest 'Abblix\.Oidc\.Server\.Model\.AuthorizationRequest') {#Abblix.Oidc.Server.Endpoints.Authorization.RequestFetching.IAuthorizationRequestFetcher.FetchAsync(Abblix.Oidc.Server.Model.AuthorizationRequest).request}

The initial authorization request, which may contain a reference to a request object or inline request parameters\.

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[Abblix\.Utils\.Result&lt;](https://learn.microsoft.com/en-us/dotnet/api/abblix.utils.result-2 'Abblix\.Utils\.Result\`2')[AuthorizationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.AuthorizationRequest 'Abblix\.Oidc\.Server\.Model\.AuthorizationRequest')[,](https://learn.microsoft.com/en-us/dotnet/api/abblix.utils.result-2 'Abblix\.Utils\.Result\`2')[AuthorizationRequestValidationError](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.AuthorizationRequestValidationError 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.AuthorizationRequestValidationError')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/abblix.utils.result-2 'Abblix\.Utils\.Result\`2')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
A task that returns the processed authorization request details, encapsulated within a
[Abblix\.Utils\.Result&lt;&gt;](https://learn.microsoft.com/en-us/dotnet/api/abblix.utils.result-2 'Abblix\.Utils\.Result\`2') of [AuthorizationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.AuthorizationRequest 'Abblix\.Oidc\.Server\.Model\.AuthorizationRequest') on success or
[AuthorizationRequestValidationError](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.AuthorizationRequestValidationError 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.AuthorizationRequestValidationError') on failure\.

### Remarks
This method is responsible for handling the specifics of fetching and interpreting the authorization request,
which may include retrieving a request object from a remote location specified by the 'request\_uri' parameter,
or validating the request object provided inline via the 'request' parameter\. It ensures the request adheres
to the expected format and validation requirements before further processing\.
