Con Visual Studio 2022, dalla versione 17.5 è possibile testare le REST API creando dei file con estensione .http o .rest.
File .rest
File .rest
La stessa funzionalità è disponibile anche in Visual Studio Code.

Sintassi

La sintassi per utilizzare il file è questa

Text: Template

[HTTP Method] [API Endpoint] [HTTP Version]
[Headers]

[Request Body (if applicable)]
che si traduce, ad esempio, in questo

Text: Get

GET https://localhost:44370/api/values HTTP/1.1
Accept: application/json
oppure

Text: Post

POST  https://localhost:44370/api/values
Content-Type: {{contentType}}

"ciao"

se ho più comandi nello stesso file li devo separare con ###

Text: Multi

### get seplice
GET https://localhost:44370/api/values HTTP/1.1
Accept: application/json


### get con parametri
GET  https://localhost:44370/api/values/1
Accept: application/json


### post valori
POST  https://localhost:44370/api/values
Content-Type: application/json

"ciao"
In Visual Studio 2022 verranno visualizzati così
Esempio GET
Esempio GET
Tramite l'icona verde play a sinistra di ogni metodo è possibile eseguire la chiamata e vedere il risultato nella parte destra.

Variabili

Ripetere ogni volta la url o altri dati può non essere comodo, e a volte serve passare, ad esempio, da un ambiente di sviluppo a uno di produzione.
In questo caso possono tornare utile le variabili.

Le variabili devono iniziare con la @

Text: Definizione variabile

@apiUrl = https://localhost:44370
e vanno richiamate con {{nomeVariabile}}

Text: Uso della variabile

### get seplice
GET {{apiUrl}}/api/values HTTP/1.1
A questo punto l'esempio di prima può essere riscritto così

Text: Multi con variabili

@apiUrl = https://localhost:44370
@id = 3
@contentType = application/json

### get seplice
GET {{apiUrl}}/api/values HTTP/1.1
Accept: application/json


### get con parametri
GET {{apiUrl}}/api/values/{{id}}
Accept: {{contentType}}


### post valori
POST {{apiUrl}}/api/values
Content-Type: {{contentType}}

"ciao"
e verrà visualizzato in Visual Studio 2022 così
description
description

Note

Nel caso di semplici chiamate questa tecnica torna utile e può sostituire Postman.

Purtroppo scenari più complessi, come ad esempio, prendere un valore da una chiamata e passarlo ad un altra non sono ancora possibili.