Modifying client generator to allow modifying requests before they are sent.

This commit is contained in:
2024-02-19 08:05:48 -08:00
parent 50861d5381
commit 8747b5fb3e
5 changed files with 114 additions and 16 deletions

View File

@ -1,4 +1,4 @@
//Generated using MontoyaTech.Rest.Net
//Generated using MontoyaTech.Rest.Net - 2/18/2024
public class Client
{
@ -10,6 +10,8 @@ public class Client
public System.Net.Http.HttpClient HttpClient;
public System.Action<System.Net.Http.HttpRequestMessage> RequestHandler;
public TestApi Test;
public AuthApi Auth;
@ -18,7 +20,7 @@ public class Client
public FormApi Form;
public Client(string baseUrl, System.Net.Http.HttpMessageHandler handler = null)
public Client(string baseUrl, System.Net.Http.HttpMessageHandler handler = null, System.Action<System.Net.Http.HttpRequestMessage> requestHandler = null)
{
if (string.IsNullOrWhiteSpace(baseUrl))
throw new System.ArgumentException("baseUrl must not be null or whitespace.");
@ -43,6 +45,8 @@ public class Client
this.MessageHandler = handler;
this.RequestHandler = requestHandler;
this.HttpClient = new System.Net.Http.HttpClient(handler);
this.HttpClient.DefaultRequestHeaders.Add("Accept", "*/*");
@ -73,6 +77,8 @@ public class Client
{
var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{this.Client.BaseUrl}/status");
this.Client.RequestHandler?.Invoke(message);
var response = this.Client.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead);
if (response.IsSuccessStatusCode)
@ -94,6 +100,8 @@ public class Client
{
var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Post, $"{this.Client.BaseUrl}/add/{a}/{b}");
this.Client.RequestHandler?.Invoke(message);
var response = this.Client.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead);
if (response.IsSuccessStatusCode)
@ -115,6 +123,8 @@ public class Client
{
var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{this.Client.BaseUrl}/compress");
this.Client.RequestHandler?.Invoke(message);
var response = this.Client.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead);
if (response.IsSuccessStatusCode)
@ -136,6 +146,8 @@ public class Client
{
var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{this.Client.BaseUrl}/file/compress");
this.Client.RequestHandler?.Invoke(message);
var response = this.Client.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead);
if (response.IsSuccessStatusCode)
@ -167,6 +179,8 @@ public class Client
{
var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{this.Client.BaseUrl}/auth/{name}");
this.Client.RequestHandler?.Invoke(message);
var response = this.Client.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead);
if (response.IsSuccessStatusCode)
@ -188,6 +202,8 @@ public class Client
{
var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Post, $"{this.Client.BaseUrl}/auth/signup");
this.Client.RequestHandler?.Invoke(message);
if (compress)
{
using (var uncompressedStream = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(request))))
@ -220,6 +236,8 @@ public class Client
{
var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{this.Client.BaseUrl}/auth/");
this.Client.RequestHandler?.Invoke(message);
var response = this.Client.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead);
if (response.IsSuccessStatusCode)
@ -241,6 +259,8 @@ public class Client
{
var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{this.Client.BaseUrl}/auth/dynamic");
this.Client.RequestHandler?.Invoke(message);
var response = this.Client.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead);
if (response.IsSuccessStatusCode)
@ -262,6 +282,8 @@ public class Client
{
var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{this.Client.BaseUrl}/auth/role");
this.Client.RequestHandler?.Invoke(message);
var response = this.Client.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead);
if (response.IsSuccessStatusCode)
@ -293,6 +315,8 @@ public class Client
{
var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Post, $"{this.Client.BaseUrl}/upload");
this.Client.RequestHandler?.Invoke(message);
request.Seek(0, System.IO.SeekOrigin.Begin);
message.Content = new System.Net.Http.StreamContent(request);
@ -307,6 +331,8 @@ public class Client
{
var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{this.Client.BaseUrl}/download");
this.Client.RequestHandler?.Invoke(message);
var response = this.Client.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead);
if (response.IsSuccessStatusCode)
@ -337,6 +363,8 @@ public class Client
{
var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Post, $"{this.Client.BaseUrl}/form");
this.Client.RequestHandler?.Invoke(message);
var response = this.Client.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead);
if (response.IsSuccessStatusCode)

View File

@ -9,6 +9,8 @@ using MontoyaTech.Rest.Net;
using System.Net.Mime;
using System.Collections;
using Newtonsoft.Json.Linq;
using System.Web;
using System.Net.Http;
namespace MontoyaTech.Rest.Net.Example
{
@ -119,7 +121,18 @@ namespace MontoyaTech.Rest.Net.Example
Console.WriteLine($"Rest api server running at {listener.BaseUrl}");
StaticClient.Init(listener.BaseUrl);
StaticClient.Init(listener.BaseUrl, requestHandler: (message) =>
{
var builder = new UriBuilder(message.RequestUri);
var query = HttpUtility.ParseQueryString(builder.Query);
query.Add("authToken", "test");
builder.Query = query.ToString();
message.RequestUri = builder.Uri;
message.Headers.Add("Auth", "Test");
});
using (var stream = new MemoryStream())
{

View File

@ -1,4 +1,4 @@
//Generated using MontoyaTech.Rest.Net
//Generated using MontoyaTech.Rest.Net - 2/18/2024
public class StaticClient
{
@ -10,7 +10,9 @@ public class StaticClient
public static System.Net.Http.HttpClient HttpClient;
public static void Init(string baseUrl, System.Net.Http.HttpMessageHandler handler = null)
public static System.Action<System.Net.Http.HttpRequestMessage> RequestHandler;
public static void Init(string baseUrl, System.Net.Http.HttpMessageHandler handler = null, System.Action<System.Net.Http.HttpRequestMessage> requestHandler = null)
{
if (string.IsNullOrWhiteSpace(baseUrl))
throw new System.ArgumentException("baseUrl must not be null or whitespace.");
@ -35,6 +37,8 @@ public class StaticClient
StaticClient.MessageHandler = handler;
StaticClient.RequestHandler = requestHandler;
StaticClient.HttpClient = new System.Net.Http.HttpClient(handler);
StaticClient.HttpClient.DefaultRequestHeaders.Add("Accept", "*/*");
@ -50,6 +54,8 @@ public class StaticClient
{
var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{StaticClient.BaseUrl}/status");
StaticClient.RequestHandler?.Invoke(message);
var response = StaticClient.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead);
if (response.IsSuccessStatusCode)
@ -71,6 +77,8 @@ public class StaticClient
{
var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Post, $"{StaticClient.BaseUrl}/add/{a}/{b}");
StaticClient.RequestHandler?.Invoke(message);
var response = StaticClient.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead);
if (response.IsSuccessStatusCode)
@ -92,6 +100,8 @@ public class StaticClient
{
var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{StaticClient.BaseUrl}/compress");
StaticClient.RequestHandler?.Invoke(message);
var response = StaticClient.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead);
if (response.IsSuccessStatusCode)
@ -113,6 +123,8 @@ public class StaticClient
{
var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{StaticClient.BaseUrl}/file/compress");
StaticClient.RequestHandler?.Invoke(message);
var response = StaticClient.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead);
if (response.IsSuccessStatusCode)
@ -137,6 +149,8 @@ public class StaticClient
{
var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{StaticClient.BaseUrl}/auth/{name}");
StaticClient.RequestHandler?.Invoke(message);
var response = StaticClient.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead);
if (response.IsSuccessStatusCode)
@ -158,6 +172,8 @@ public class StaticClient
{
var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Post, $"{StaticClient.BaseUrl}/auth/signup");
StaticClient.RequestHandler?.Invoke(message);
if (compress)
{
using (var uncompressedStream = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(request))))
@ -190,6 +206,8 @@ public class StaticClient
{
var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{StaticClient.BaseUrl}/auth/");
StaticClient.RequestHandler?.Invoke(message);
var response = StaticClient.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead);
if (response.IsSuccessStatusCode)
@ -211,6 +229,8 @@ public class StaticClient
{
var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{StaticClient.BaseUrl}/auth/dynamic");
StaticClient.RequestHandler?.Invoke(message);
var response = StaticClient.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead);
if (response.IsSuccessStatusCode)
@ -232,6 +252,8 @@ public class StaticClient
{
var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{StaticClient.BaseUrl}/auth/role");
StaticClient.RequestHandler?.Invoke(message);
var response = StaticClient.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead);
if (response.IsSuccessStatusCode)
@ -256,6 +278,8 @@ public class StaticClient
{
var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Post, $"{StaticClient.BaseUrl}/upload");
StaticClient.RequestHandler?.Invoke(message);
request.Seek(0, System.IO.SeekOrigin.Begin);
message.Content = new System.Net.Http.StreamContent(request);
@ -270,6 +294,8 @@ public class StaticClient
{
var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{StaticClient.BaseUrl}/download");
StaticClient.RequestHandler?.Invoke(message);
var response = StaticClient.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead);
if (response.IsSuccessStatusCode)
@ -293,6 +319,8 @@ public class StaticClient
{
var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Post, $"{StaticClient.BaseUrl}/form");
StaticClient.RequestHandler?.Invoke(message);
var response = StaticClient.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead);
if (response.IsSuccessStatusCode)