public async Task Execute() { // non fluent var result = await _fluentHttpClient.Post <LoginResponse>("/api/auth/login", new { username = "******", password = "******" }); // fluent LoginResponse fluentResult = await _fluentHttpClient.CreateRequest("/api/auth/login") .AsPost() .WithBody(new { username = "******", password = "******" }) .Return <LoginResponse>(); Check.That(result).IsNotNull(); Check.That(result.AccessToken).IsNotNull(); _sessionState.Set("auth:token", result.AccessToken); _logger.LogInformation("[{service}] complete", nameof(Auth_LoginTest)); }
public Task <Hero> PostAsMessagePack() { return(_messagePackHttpClient.CreateRequest("/api/msgpack") .AsPost() .WithBody(new Hero { Key = "valeera", Name = "Valeera", Title = "Shadow of the Uncrowned" }) .Return <Hero>()); }
public Task <Hero> PostAsJson() { return(_jsonHttpClient.CreateRequest("/api/json") .AsPost() .WithBody(new Hero { Key = "valeera", Name = "Valeera", Title = "Shadow of the Uncrowned" }) .Return <Hero>()); }
public async Task Execute() { var result = await _fluentHttpClient.Get <TermsAndConditionsResponse>("/api/profile/terms-and-conditions/latest"); var response = await _fluentHttpClient.CreateRequest("/api/profile/terms-and-conditions/latest") .AsGet() .ReturnAsResponse <TermsAndConditionsResponse>(); response.EnsureSuccessStatusCode(); var timeTaken = response.GetTimeTaken(); Check.That(timeTaken).IsLessThan(TimeSpan.FromMilliseconds(250)); Check.That(result).IsNotNull(); Check.That(result.Id).IsStrictlyGreaterThan(0); _logger.LogInformation("[{service}] complete", nameof(Common_TermsAndConditionsTest)); }
/// <summary> /// Creates a request for GraphQL. /// </summary> /// <returns></returns> public static FluentHttpRequestBuilder CreateGqlRequest(this IFluentHttpClient fluentHttpClient, GqlQuery query) => fluentHttpClient.CreateRequest().AsGql(query);
/// <summary> /// Create and send a HTTP DELETE request and return content. /// </summary> /// <typeparam name="T">Type to deserialize content to.</typeparam> /// <param name="client">HTTP client instance</param> /// <param name="uri">Request resource uri to send.</param> /// <param name="data">Payload data content to send.</param> /// <param name="contentType">(Optional) content type to use when sending data.</param> /// <returns>Returns task with the result data.</returns> public static Task <T> Delete <T>(this IFluentHttpClient client, string?uri, object data, MediaTypeHeaderValue?contentType = null) => client.CreateRequest(uri) .AsDelete() .WithSuccessStatus() .WithBody(data, contentType) .Return <T>();
/// <summary> /// Create and send a HTTP GET request and return content. /// </summary> /// <typeparam name="T">Type to deserialize content to.</typeparam> /// <param name="client">HTTP client instance.</param> /// <param name="uri">Request resource uri to send.</param> /// <returns>Returns task with the result data.</returns> public static Task <T> Get <T>(this IFluentHttpClient client, string?uri) => client.CreateRequest(uri) .AsGet() .WithSuccessStatus() .Return <T>();
/// <summary> /// Create and send a HTTP PATCH request and return content. /// </summary> /// <typeparam name="T">Type to deserialize content to.</typeparam> /// <param name="client">HTTP client instance</param> /// <param name="uri">Request resource uri to send.</param> /// <param name="data">Payload data content to send.</param> /// <param name="contentType">(Optional) content type to use when sending data.</param> /// <returns>Returns task with the result data.</returns> public static Task <T> Patch <T>(this IFluentHttpClient client, string uri, object data, MediaTypeHeaderValue contentType = null) => client.CreateRequest(uri) .AsPatch() .WithBody(data, contentType) .Return <T>();
/// <summary> /// Creates a request for GraphQL. /// </summary> /// <returns></returns> public static FluentHttpRequestBuilder CreateGqlRequest(this IFluentHttpClient fluentHttpClient, GqlRequest request) => fluentHttpClient.CreateRequest().AsGql(request);
/// <summary> /// Creates a request for GraphQL. /// </summary> /// <returns>Returns request builder for chaining.</returns> public static FluentHttpRequestBuilder CreateGqlRequest(this IFluentHttpClient fluentHttpClient, string query, string?operationName = null) => fluentHttpClient.CreateRequest().AsGql(query, operationName);