Skip to content

Commit

Permalink
Address URL generation issues
Browse files Browse the repository at this point in the history
  • Loading branch information
paulomorgado committed Feb 5, 2024
1 parent 0c9d87f commit 744940b
Show file tree
Hide file tree
Showing 5 changed files with 71 additions and 80 deletions.
35 changes: 7 additions & 28 deletions src/NSwag.CodeGeneration.CSharp/Templates/Client.Class.liquid
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,6 @@
[System.CodeDom.Compiler.GeneratedCode("NSwag", "{{ ToolchainVersion }}")]
{{ ClientClassAccessModifier }} partial class {{ Class }} {% if HasBaseType %}: {% endif %}{% if HasBaseClass %}{{ BaseClass }}{% if GenerateClientInterfaces %}, {% endif %}{% endif %}{% if GenerateClientInterfaces %}I{{ Class }}{% endif %}
{
{% if UseBaseUrl -%}
#pragma warning disable 8618
private string _baseUrl;
#pragma warning restore 8618

{% endif -%}
{% if InjectHttpClient -%}
private {{ HttpClientType }} _httpClient;
{% endif -%}
Expand All @@ -34,30 +28,9 @@
{
{% if UseBaseUrl -%}
{% if HasBaseUrl -%}
{% if GenerateBaseUrlProperty -%}
BaseUrl = "{{ BaseUrl }}";
{% else -%}
{% if BaseUrl != "" -%}
{% assign baseUrlLength = BaseUrl | size -%}
{% assign lastUrlCharIndex = baseUrlLength | minus: 1 -%}
{% assign lastUrlChar = BaseUrl | slice: lastUrlCharIndex, 1 -%}
{% if lastUrlChar == "/" -%}
_baseUrl = "{{ BaseUrl }}";
{% else -%}
_baseUrl = "{{ BaseUrl }}/";
{% endif -%}
{% endif -%}
{% endif -%}
{% else -%}
{% if GenerateBaseUrlProperty -%}
BaseUrl = baseUrl;
{% else -%}
{% if HasConfigurationClass == false -%}
_baseUrl = (string.IsNullOrEmpty(baseUrl) || baseUrl.EndsWith("/"))
? baseUrl
: baseUrl + "/";
{% endif -%}
{% endif -%}
{% endif -%}
{% endif -%}
{% if InjectHttpClient -%}
Expand All @@ -82,6 +55,9 @@
}

{% if UseBaseUrl and GenerateBaseUrlProperty -%}
#pragma warning disable 8618
private string _baseUrl;
#pragma warning restore 8618
public string BaseUrl
{
get { return _baseUrl; }
Expand Down Expand Up @@ -289,7 +265,10 @@
{% endif -%}

var urlBuilder_ = new System.Text.StringBuilder();
{% if UseBaseUrl %}if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl);{% endif %}
{% if UseBaseUrl -%}
if (!string.IsNullOrEmpty(BaseUrl)) urlBuilder_.Append(BaseUrl);
if (urlBuilder_[urlBuilder_.Length -1] != '/') urlBuilder_.Append('/');
{% endif -%}
// Operation Path: "{{ operation.Path }}"
{% if operation.Path contains "{" -%}
{% assign pathParts = operation.Path | split: "{" -%}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,6 @@ namespace MyNamespace
[System.CodeDom.Compiler.GeneratedCode("NSwag", "")]
public partial class Client
{
#pragma warning disable 8618
private string _baseUrl;
#pragma warning restore 8618

private System.Net.Http.HttpClient _httpClient;
private static System.Lazy<Newtonsoft.Json.JsonSerializerSettings> _settings = new System.Lazy<Newtonsoft.Json.JsonSerializerSettings>(CreateSerializerSettings, true);

Expand All @@ -43,6 +39,9 @@ namespace MyNamespace
return settings;
}

#pragma warning disable 8618
private string _baseUrl;
#pragma warning restore 8618
public string BaseUrl
{
get { return _baseUrl; }
Expand Down Expand Up @@ -83,7 +82,8 @@ namespace MyNamespace
request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json"));

var urlBuilder_ = new System.Text.StringBuilder();
if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl);
if (!string.IsNullOrEmpty(BaseUrl)) urlBuilder_.Append(BaseUrl);
if (urlBuilder_[urlBuilder_.Length -1] != '/') urlBuilder_.Append('/');
// Operation Path: ""

PrepareRequest(client_, request_, urlBuilder_);
Expand Down Expand Up @@ -164,7 +164,8 @@ namespace MyNamespace
request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json"));

var urlBuilder_ = new System.Text.StringBuilder();
if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl);
if (!string.IsNullOrEmpty(BaseUrl)) urlBuilder_.Append(BaseUrl);
if (urlBuilder_[urlBuilder_.Length -1] != '/') urlBuilder_.Append('/');
// Operation Path: "sum/{a}/{b}"
urlBuilder_.Append("sum/");
urlBuilder_.Append(System.Uri.EscapeDataString(ConvertToString(a, System.Globalization.CultureInfo.InvariantCulture)));
Expand Down Expand Up @@ -246,7 +247,8 @@ namespace MyNamespace
request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json"));

var urlBuilder_ = new System.Text.StringBuilder();
if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl);
if (!string.IsNullOrEmpty(BaseUrl)) urlBuilder_.Append(BaseUrl);
if (urlBuilder_[urlBuilder_.Length -1] != '/') urlBuilder_.Append('/');
// Operation Path: "abs({a})"
urlBuilder_.Append("abs(");
urlBuilder_.Append(System.Uri.EscapeDataString(ConvertToString(a, System.Globalization.CultureInfo.InvariantCulture)));
Expand Down Expand Up @@ -327,7 +329,8 @@ namespace MyNamespace
request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json"));

var urlBuilder_ = new System.Text.StringBuilder();
if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl);
if (!string.IsNullOrEmpty(BaseUrl)) urlBuilder_.Append(BaseUrl);
if (urlBuilder_[urlBuilder_.Length -1] != '/') urlBuilder_.Append('/');
// Operation Path: "id:{id}"
urlBuilder_.Append("id:");
urlBuilder_.Append(System.Uri.EscapeDataString(ConvertToString(id, System.Globalization.CultureInfo.InvariantCulture)));
Expand Down Expand Up @@ -499,10 +502,6 @@ namespace MyNamespace
[System.CodeDom.Compiler.GeneratedCode("NSwag", "")]
public partial class ExampleClient
{
#pragma warning disable 8618
private string _baseUrl;
#pragma warning restore 8618

private System.Net.Http.HttpClient _httpClient;
private static System.Lazy<Newtonsoft.Json.JsonSerializerSettings> _settings = new System.Lazy<Newtonsoft.Json.JsonSerializerSettings>(CreateSerializerSettings, true);

Expand All @@ -519,6 +518,9 @@ namespace MyNamespace
return settings;
}

#pragma warning disable 8618
private string _baseUrl;
#pragma warning restore 8618
public string BaseUrl
{
get { return _baseUrl; }
Expand Down Expand Up @@ -559,7 +561,8 @@ namespace MyNamespace
request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/octet-stream"));

var urlBuilder_ = new System.Text.StringBuilder();
if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl);
if (!string.IsNullOrEmpty(BaseUrl)) urlBuilder_.Append(BaseUrl);
if (urlBuilder_[urlBuilder_.Length -1] != '/') urlBuilder_.Append('/');
// Operation Path: "examples"
urlBuilder_.Append("examples");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,6 @@ namespace MyNamespace
[System.CodeDom.Compiler.GeneratedCode("NSwag", "")]
public partial class Client
{
#pragma warning disable 8618
private string _baseUrl;
#pragma warning restore 8618

private System.Net.Http.HttpClient _httpClient;
private static System.Lazy<Newtonsoft.Json.JsonSerializerSettings> _settings = new System.Lazy<Newtonsoft.Json.JsonSerializerSettings>(CreateSerializerSettings, true);

Expand All @@ -43,6 +39,9 @@ namespace MyNamespace
return settings;
}

#pragma warning disable 8618
private string _baseUrl;
#pragma warning restore 8618
public string BaseUrl
{
get { return _baseUrl; }
Expand Down Expand Up @@ -83,7 +82,8 @@ namespace MyNamespace
request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json"));

var urlBuilder_ = new System.Text.StringBuilder();
if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl);
if (!string.IsNullOrEmpty(BaseUrl)) urlBuilder_.Append(BaseUrl);
if (urlBuilder_[urlBuilder_.Length -1] != '/') urlBuilder_.Append('/');
// Operation Path: ""

PrepareRequest(client_, request_, urlBuilder_);
Expand Down Expand Up @@ -164,7 +164,8 @@ namespace MyNamespace
request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json"));

var urlBuilder_ = new System.Text.StringBuilder();
if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl);
if (!string.IsNullOrEmpty(BaseUrl)) urlBuilder_.Append(BaseUrl);
if (urlBuilder_[urlBuilder_.Length -1] != '/') urlBuilder_.Append('/');
// Operation Path: "sum/{a}/{b}"
urlBuilder_.Append("sum/");
urlBuilder_.Append(System.Uri.EscapeDataString(ConvertToString(a, System.Globalization.CultureInfo.InvariantCulture)));
Expand Down Expand Up @@ -246,7 +247,8 @@ namespace MyNamespace
request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json"));

var urlBuilder_ = new System.Text.StringBuilder();
if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl);
if (!string.IsNullOrEmpty(BaseUrl)) urlBuilder_.Append(BaseUrl);
if (urlBuilder_[urlBuilder_.Length -1] != '/') urlBuilder_.Append('/');
// Operation Path: "abs({a})"
urlBuilder_.Append("abs(");
urlBuilder_.Append(System.Uri.EscapeDataString(ConvertToString(a, System.Globalization.CultureInfo.InvariantCulture)));
Expand Down Expand Up @@ -327,7 +329,8 @@ namespace MyNamespace
request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json"));

var urlBuilder_ = new System.Text.StringBuilder();
if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl);
if (!string.IsNullOrEmpty(BaseUrl)) urlBuilder_.Append(BaseUrl);
if (urlBuilder_[urlBuilder_.Length -1] != '/') urlBuilder_.Append('/');
// Operation Path: "id:{id}"
urlBuilder_.Append("id:");
urlBuilder_.Append(System.Uri.EscapeDataString(ConvertToString(id, System.Globalization.CultureInfo.InvariantCulture)));
Expand Down Expand Up @@ -499,10 +502,6 @@ namespace MyNamespace
[System.CodeDom.Compiler.GeneratedCode("NSwag", "")]
public partial class ExampleClient
{
#pragma warning disable 8618
private string _baseUrl;
#pragma warning restore 8618

private System.Net.Http.HttpClient _httpClient;
private static System.Lazy<Newtonsoft.Json.JsonSerializerSettings> _settings = new System.Lazy<Newtonsoft.Json.JsonSerializerSettings>(CreateSerializerSettings, true);

Expand All @@ -519,6 +518,9 @@ namespace MyNamespace
return settings;
}

#pragma warning disable 8618
private string _baseUrl;
#pragma warning restore 8618
public string BaseUrl
{
get { return _baseUrl; }
Expand Down Expand Up @@ -559,7 +561,8 @@ namespace MyNamespace
request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/octet-stream"));

var urlBuilder_ = new System.Text.StringBuilder();
if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl);
if (!string.IsNullOrEmpty(BaseUrl)) urlBuilder_.Append(BaseUrl);
if (urlBuilder_[urlBuilder_.Length -1] != '/') urlBuilder_.Append('/');
// Operation Path: "examples"
urlBuilder_.Append("examples");

Expand Down
29 changes: 16 additions & 13 deletions src/NSwag.Sample.NET70Minimal/GeneratedClientsCs.gen
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,6 @@ namespace MyNamespace
[System.CodeDom.Compiler.GeneratedCode("NSwag", "")]
public partial class Client
{
#pragma warning disable 8618
private string _baseUrl;
#pragma warning restore 8618

private System.Net.Http.HttpClient _httpClient;
private static System.Lazy<Newtonsoft.Json.JsonSerializerSettings> _settings = new System.Lazy<Newtonsoft.Json.JsonSerializerSettings>(CreateSerializerSettings, true);

Expand All @@ -43,6 +39,9 @@ namespace MyNamespace
return settings;
}

#pragma warning disable 8618
private string _baseUrl;
#pragma warning restore 8618
public string BaseUrl
{
get { return _baseUrl; }
Expand Down Expand Up @@ -83,7 +82,8 @@ namespace MyNamespace
request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json"));

var urlBuilder_ = new System.Text.StringBuilder();
if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl);
if (!string.IsNullOrEmpty(BaseUrl)) urlBuilder_.Append(BaseUrl);
if (urlBuilder_[urlBuilder_.Length -1] != '/') urlBuilder_.Append('/');
// Operation Path: ""

PrepareRequest(client_, request_, urlBuilder_);
Expand Down Expand Up @@ -164,7 +164,8 @@ namespace MyNamespace
request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json"));

var urlBuilder_ = new System.Text.StringBuilder();
if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl);
if (!string.IsNullOrEmpty(BaseUrl)) urlBuilder_.Append(BaseUrl);
if (urlBuilder_[urlBuilder_.Length -1] != '/') urlBuilder_.Append('/');
// Operation Path: "sum/{a}/{b}"
urlBuilder_.Append("sum/");
urlBuilder_.Append(System.Uri.EscapeDataString(ConvertToString(a, System.Globalization.CultureInfo.InvariantCulture)));
Expand Down Expand Up @@ -246,7 +247,8 @@ namespace MyNamespace
request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json"));

var urlBuilder_ = new System.Text.StringBuilder();
if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl);
if (!string.IsNullOrEmpty(BaseUrl)) urlBuilder_.Append(BaseUrl);
if (urlBuilder_[urlBuilder_.Length -1] != '/') urlBuilder_.Append('/');
// Operation Path: "abs({a})"
urlBuilder_.Append("abs(");
urlBuilder_.Append(System.Uri.EscapeDataString(ConvertToString(a, System.Globalization.CultureInfo.InvariantCulture)));
Expand Down Expand Up @@ -327,7 +329,8 @@ namespace MyNamespace
request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json"));

var urlBuilder_ = new System.Text.StringBuilder();
if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl);
if (!string.IsNullOrEmpty(BaseUrl)) urlBuilder_.Append(BaseUrl);
if (urlBuilder_[urlBuilder_.Length -1] != '/') urlBuilder_.Append('/');
// Operation Path: "id:{id}"
urlBuilder_.Append("id:");
urlBuilder_.Append(System.Uri.EscapeDataString(ConvertToString(id, System.Globalization.CultureInfo.InvariantCulture)));
Expand Down Expand Up @@ -499,10 +502,6 @@ namespace MyNamespace
[System.CodeDom.Compiler.GeneratedCode("NSwag", "")]
public partial class ExampleClient
{
#pragma warning disable 8618
private string _baseUrl;
#pragma warning restore 8618

private System.Net.Http.HttpClient _httpClient;
private static System.Lazy<Newtonsoft.Json.JsonSerializerSettings> _settings = new System.Lazy<Newtonsoft.Json.JsonSerializerSettings>(CreateSerializerSettings, true);

Expand All @@ -519,6 +518,9 @@ namespace MyNamespace
return settings;
}

#pragma warning disable 8618
private string _baseUrl;
#pragma warning restore 8618
public string BaseUrl
{
get { return _baseUrl; }
Expand Down Expand Up @@ -559,7 +561,8 @@ namespace MyNamespace
request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/octet-stream"));

var urlBuilder_ = new System.Text.StringBuilder();
if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl);
if (!string.IsNullOrEmpty(BaseUrl)) urlBuilder_.Append(BaseUrl);
if (urlBuilder_[urlBuilder_.Length -1] != '/') urlBuilder_.Append('/');
// Operation Path: "examples"
urlBuilder_.Append("examples");

Expand Down
Loading

0 comments on commit 744940b

Please sign in to comment.