@@ -52,6 +52,7 @@ public class FileMakerRestClient : FileMakerApiClientBase, IFileMakerRestClient
5252
5353 private readonly IAuthTokenProvider _authTokenProvider ;
5454 private readonly bool _useNewClientForContainers = false ;
55+ private readonly string _targetVersion = "v1" ;
5556
5657 #region Constructors
5758 /// <summary>
@@ -98,6 +99,21 @@ public FileMakerRestClient(
9899 {
99100 _authTokenProvider = authTokenProvider ;
100101 _useNewClientForContainers = useNewClientForContainers ;
102+ switch ( _authTokenProvider . ConnectionInfo ? . RestTargetVersion )
103+ {
104+ case RestTargetVersion . v1 :
105+ _targetVersion = "v1" ;
106+ break ;
107+ case RestTargetVersion . v2 :
108+ _targetVersion = "v2" ;
109+ break ;
110+ case RestTargetVersion . vLatest :
111+ _targetVersion = "vLatest" ;
112+ break ;
113+ default :
114+ _targetVersion = "v1" ;
115+ break ;
116+ }
101117#if NETSTANDARD1_3
102118 var header = new System . Net . Http . Headers . ProductHeaderValue ( "FMData.Rest" , "4" ) ;
103119 var userAgent = new System . Net . Http . Headers . ProductInfoHeaderValue ( header ) ;
@@ -116,7 +132,7 @@ public FileMakerRestClient(
116132 /// <summary>
117133 /// Note we assume _fmsUri has no trailing slash as its cut off in the constructor.
118134 /// </summary>
119- private string BaseEndPoint => $ "{ FmsUri } /fmi/data/v1 /databases/{ FileName } ";
135+ private string BaseEndPoint => $ "{ FmsUri } /fmi/data/{ _targetVersion } /databases/{ FileName } ";
120136
121137 /// <summary>
122138 /// Generate the appropriate Authentication endpoint uri for this instance of the data client.
@@ -639,7 +655,7 @@ public override async Task<string> RunScriptAsync(string layout, string script,
639655 await UpdateTokenDateAsync ( ) . ConfigureAwait ( false ) ; // we're about to use the token so update date used
640656
641657 // generate request url
642- var uri = $ "{ FmsUri } /fmi/data/v1 "
658+ var uri = $ "{ FmsUri } /fmi/data/{ _targetVersion } "
643659 + $ "/databases/{ Uri . EscapeDataString ( FileName ) } "
644660 + $ "/layouts/{ Uri . EscapeDataString ( layout ) } "
645661 + $ "/script/{ Uri . EscapeDataString ( script ) } ";
@@ -835,7 +851,7 @@ public override async Task<IResponse> SetGlobalFieldAsync(string baseTable, stri
835851 public override async Task < ProductInformation > GetProductInformationAsync ( )
836852 {
837853 // generate request url
838- var requestMessage = new HttpRequestMessage ( HttpMethod . Get , $ "{ FmsUri } /fmi/data/v1 /productinfo") ;
854+ var requestMessage = new HttpRequestMessage ( HttpMethod . Get , $ "{ FmsUri } /fmi/data/{ _targetVersion } /productinfo") ;
839855
840856 // run the patch action
841857 var response = await Client . SendAsync ( requestMessage ) . ConfigureAwait ( false ) ;
@@ -869,7 +885,7 @@ public override async Task<IReadOnlyCollection<string>> GetDatabasesAsync()
869885 // don't need to refresh the token, because this is a basic authentication request
870886
871887 // generate request url
872- var requestMessage = new HttpRequestMessage ( HttpMethod . Get , $ "{ FmsUri } /fmi/data/v1 /databases") ;
888+ var requestMessage = new HttpRequestMessage ( HttpMethod . Get , $ "{ FmsUri } /fmi/data/{ _targetVersion } /databases") ;
873889
874890 // special non-token auth to list databases
875891 requestMessage . Headers . Authorization = await _authTokenProvider . GetAuthenticationHeaderValue ( ) . ConfigureAwait ( false ) ;
@@ -906,7 +922,7 @@ public override async Task<IReadOnlyCollection<LayoutListItem>> GetLayoutsAsync(
906922 await UpdateTokenDateAsync ( ) . ConfigureAwait ( false ) ; // we're about to use the token so update date used
907923
908924 // generate request url
909- var uri = $ "{ FmsUri } /fmi/data/v1 /"
925+ var uri = $ "{ FmsUri } /fmi/data/{ _targetVersion } /"
910926 + $ "databases/{ Uri . EscapeDataString ( FileName ) } /layouts";
911927 var requestMessage = new HttpRequestMessage ( HttpMethod . Get , uri ) ;
912928
@@ -945,7 +961,7 @@ public override async Task<IReadOnlyCollection<ScriptListItem>> GetScriptsAsync(
945961 await UpdateTokenDateAsync ( ) . ConfigureAwait ( false ) ; // we're about to use the token so update date used
946962
947963 // generate request url
948- var uri = $ "{ FmsUri } /fmi/data/v1 "
964+ var uri = $ "{ FmsUri } /fmi/data/{ _targetVersion } "
949965 + $ "/databases/{ Uri . EscapeDataString ( FileName ) } /scripts";
950966 var requestMessage = new HttpRequestMessage ( HttpMethod . Get , uri ) ;
951967
@@ -986,7 +1002,7 @@ public override async Task<LayoutMetadata> GetLayoutAsync(string layout, int? re
9861002 await UpdateTokenDateAsync ( ) . ConfigureAwait ( false ) ; // we're about to use the token so update date used
9871003
9881004 // generate request url
989- var uri = $ "{ FmsUri } /fmi/data/v1 "
1005+ var uri = $ "{ FmsUri } /fmi/data/{ _targetVersion } "
9901006 + $ "/databases/{ Uri . EscapeDataString ( FileName ) } "
9911007 + $ "/layouts/{ Uri . EscapeDataString ( layout ) } ";
9921008 if ( recordId . HasValue )
0 commit comments