Infoga data i Position Green
För att importera filer till Position Green kan du HTTP POSTa en fil till https://apiurl/imports.
Du måste också ange giltiga inloggningsuppgifter i form av en access-token.
Begäran måste ha innehållstypen multipart/form-data och den fil som skickas som variabel fil. Detta tillsammans med en filetype (sträng) identifierar typen av importerad fil, om du har många olika importer används det för att identifiera vilken som ska starta processen. Se exempel i referenskapitlet i slutet för mer detaljerad användning av hur det används.
Anmärkning om fileType-värden
fileType är ett strängvärde som måste matcha en befintlig importkonfigurationsnyckel i Position Green.
Dessa strängvärden tillhandahålls av Position Green på begäran.
Om ytterligare importkonfigurationer läggs till på plattformen där API-uppladdning önskas måste det tillgängliga fileType-värdet återigen begäras.
Exempel 1 - Importera en fil till Position Green API med användning av enbart HTTP
namespace TestClient; public class Program { private static string apiUrl = "https://apiurl"; //Provided by Position Green on request private static string loginUrl = "https://oidcurl"; //Provided by Position Green on request public static async Task Main() { Console.Title = "Console Client Credentials Flow"; var token = await RequestToken("clientid", "clientsecret"); //Provided by Position Green on request var fileType = "file type"; //Provided by Position Green on request await UploadFile(token, "data.xml", fileType); } private static async Task<string> RequestToken(string clientId, string clientSecret) { var client = new HttpClient(); client.DefaultRequestHeaders.Add("Accept", "application/json"); client.BaseAddress = new Uri(loginUrl); var grant_type = "client_credentials"; var data = new Dictionary<string, string> { { "client_id", clientId }, { "client_secret", clientSecret }, { "grant_type", grant_type }, }; var postTask = client.PostAsync("/connect/token", new FormUrlEncodedContent(data)); postTask.Wait(); var response = postTask.Result; var token = await response.Content.ReadFromJsonAsync<Token>(); return token.access_token; } static async Task UploadFile(string token, string file, string fileType) { var handler = new HttpClientHandler() { AllowAutoRedirect = false }; var client = new HttpClient(handler) { BaseAddress = new Uri(apiUrl) }; client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); var form = new MultipartFormDataContent(); var fileData = File.ReadAllBytes(file); var byteArrayContent = new ByteArrayContent(fileData); byteArrayContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data") { FileName = file, Name = "file" }; byteArrayContent.Headers.ContentType = MediaTypeHeaderValue.Parse("text/xml"); form.Add(byteArrayContent, "file"); form.Add(new StringContent(fileType), "fileType"); var response = await client.PostAsync("/imports", form); if (response.StatusCode != HttpStatusCode.OK) { throw new Exception(await response.Content.ReadAsStringAsync()); } return; } } public class Token { public string access_token { get; set; } }
Exempel 2 - Importera en fil till Position Green API med användning av biblioteket för hantering av OpenID Connect
namespace TestClient { class ProgramIdentityModel { public static async Task Main() { var loginUrl = "https://oidcurl"; //Provided by Position Green on request var clientId = "clientid"; //Provided by Position Green on request var clientSecret = "testclient"; //Provided by Position Green on request var response = await RequestTokenAsync(loginUrl, clientId, clientSecret); var apiUrl = "https://apiurl"; //Provided by Position Green on request var fileToUpload = "data.xml"; var fileType = "file type"; //Provided by Position Green on request var redirectUrl = await UploadFile(response.AccessToken, fileToUpload, apiUrl, fileType); } static async Task<TokenResponse> RequestTokenAsync(string loginUrl, string clientId, string clientSecret) { var disco = await DiscoveryClient.GetAsync(loginUrl); if (disco.IsError) throw new Exception(disco.Error); var client = new TokenClient( disco.TokenEndpoint, clientId, clientSecret); return await client.RequestClientCredentialsAsync(); } static async Task<Uri> UploadFile(string token, string file, string apiUrl, string fileType) { var handler = new HttpClientHandler() { AllowAutoRedirect = false }; var client = new HttpClient(handler) { BaseAddress = new Uri(apiUrl), }; client.SetBearerToken(token); var form = new MultipartFormDataContent(); var fileData = await File.ReadAllBytesAsync(file); var byteArrayContent = new ByteArrayContent(fileData); byteArrayContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data") { FileName = file, Name = "file" }; byteArrayContent.Headers.ContentType = MediaTypeHeaderValue.Parse("text/xml"); form.Add(byteArrayContent, "file"); form.Add(new StringContent(fileType), "fileType"); var response = await client.PostAsync("/imports", form); if (response.StatusCode != HttpStatusCode.OK) { throw new Exception(await response.Content.ReadAsStringAsync()); } return response.Headers.Location; } } } }
Importera JSON
Importkonfigurationen kan skickas via slutpunkten /imports/json om konfigurationen är i JSON-format. I så fall måste JSON-konfigurationen skickas som en sträng i innehållsparametern. Se detaljerna för slutpunkten nedan:
POST /imports/json
Utforska importavsnittet på vår Swagger-sida.
Importera base64-sträng
Importkonfigurationen kan skickas via slutpunkten /imports/base64 om konfigurationen är i Base64-strängformat. I detta fall måste Base64-konfigurationen skickas som en sträng i innehållsparametern. Se detaljerna för slutpunkten nedan:
POST /imports/base64
Utforska importavsnittet på vår Swagger-sida.
Var artikeln till hjälp?
Toppen!
Tack för din feedback
Vi beklagar att det inte var till hjälp
Tack för din feedback
Feddback skickat
Vi uppskattar din feedback och uppdaterar artikeln vid behov