Endpoint API C#
Identificatore: PowerShellUniversal.Language.CSharp
Questo plugin crea un ambiente basato su C# che può essere utilizzato per creare endpoint API con codice C#. Le API create con C# sono molto più veloci degli endpoint basati su PowerShell. Gli endpoint vengono eseguiti direttamente nel servizio PowerShell Universal. Qualsiasi eccezione generata dal suo endpoint verrà gestita e un codice di stato valido verrà restituito al chiamante.
Deve creare gli endpoint con il parametro -Path e specificare l'ambiente C# affinché l'endpoint funzioni correttamente.
New-PSUEndpoint -Url /csharp -Path csharp.cs -Environment 'C#'Definizione di un endpoint
All'interno dell'endpoint C# ci sono due classi di interesse. La prima è la variabile request che viene passata all'endpoint. È un oggetto ApiRequest.
public class ApiRequest
{
public long Id { get; set; }
public ICollection<KeyValue> Variables { get; set; } = new List<KeyValue>();
public IEnumerable<ApiFile> Files { get; set; } = new List<ApiFile>();
public string Url { get; set; }
public ICollection<KeyValue> Headers { get; set; } = new List<KeyValue>();
public byte[] Data { get; set; }
public int ErrorAction { get; set; }
public ICollection<KeyValue> Parameters { get; set; } = new List<KeyValue>();
public string Method { get; set; }
public ICollection<KeyValue> Cookies { get; set; } = new List<KeyValue>();
public string ClaimsPrincipal { get; set; }
public string ContentType { get; set; }
public string[] Roles { get; set; }
}Nel suo endpoint può accedere automaticamente a questa variabile.
L'endpoint deve restituire un oggetto ApiResponse. Questo oggetto ha la definizione seguente.
Può restituire una risposta creando un nuovo oggetto e restituendolo dal suo endpoint.
Quando definisce il contenuto di un endpoint, tenga presente che il codice viene aggiunto a una classe con nome generato dinamicamente con una singola funzione Execute. Il suo codice deve avere una sintassi valida per tale file sorgente.
Può accedere al contenitore di servizi di PowerShell Universal all'interno del suo endpoint accedendo alla proprietà ServiceProvider nell'endpoint. Attualmente non documentiamo i servizi interni di PowerShell Universal.
Riferimenti
Può controllare quali assembly vengono referenziati utilizzando la parola chiave #ref. Il valore può essere un file DLL nella directory di installazione di PowerShell Universal oppure il percorso completo di un altro assembly.
Using dei namespace
Può fare riferimento a un namespace utilizzando la parola chiave #using.
Variabili
Può accedere alle variabili negli endpoint C# con i metodi GetVariable, GetSecretString e GetSecretCredential.
Per accedere a un PSCredential, può procedere come segue.
Ultimo aggiornamento
È stato utile?