For the complete documentation index, see llms.txt. This page is also available as Markdown.

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?