Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Visual Studio 2022.http dosya düzenleyicisi, ASP.NET Core projelerini, özellikle API uygulamalarını test etmek için kullanışlı bir yol sağlar. Düzenleyici, aşağıdakileri sağlayan bir kullanıcı arabirimi sağlar:
- Dosyaları oluşturur ve güncelleştirir
.http. - Dosyalarda
.httpbelirtilen HTTP isteklerini gönderir. - Yanıtları görüntüler.
Bu makalede şunlara yönelik belgeler yer alır:
-
.httpdosya söz dizimi. -
.httpdosyası nasıl oluşturulur. -
Bir dosyadan
.httpistek gönderme. -
.httpyapılandırılabilir dosya seçeneklerinin nerede bulunacağı. -
Visual Studio 2022 Endpoints Explorer kullanarak
.httpdosyalarında nasıl istek oluşturulur.
.http Dosya biçimi ve düzenleyici, Visual Studio Code REST İstemci uzantısından esinlendi. Visual Studio 2022 .http düzenleyicisi, aynı dosya biçimi için alternatif bir dosya uzantısı olarak tanır .rest .
Önkoşullar
- ASP.NET ve web geliştirme iş yükünün yüklü olduğu Visual Studio 2022 sürüm 17.8 veya üzeri.
.http dosya söz dizimi
Aşağıdaki bölümlerde dosya söz dizimi açıklanmaktadır .http .
İstekler
Bir HTTP isteğinin biçimi HTTPMethod URL HTTPVersion olup tümü tek bir satırdadır; burada:
-
HTTPMethodkullanılacak HTTP yöntemidir, örneğin: -
URL, isteğin gönderiliyor olduğu URL'dir. URL, sorgu dizesi parametrelerini içerebilir. URL'nin yerel bir web projesine işaret etmesi gerekmez. Visual Studio'nın erişebileceği herhangi bir URL'ye işaret edebilir. -
HTTPVersionisteğe bağlıdır ve kullanılması gereken HTTP sürümünü ( ,HTTP/1.1HTTP/2veyaHTTP/3) belirtir.
Bir dosya, sınırlayıcı olarak satırları ### kullanarak birden çok istek içerebilir. Bir dosyada üç isteği gösteren aşağıdaki örnekte bu söz dizimi gösterilmektedir:
GET https://localhost:7220/weatherforecast
###
GET https://localhost:7220/weatherforecast?date=2023-05-11&location=98006
###
GET https://localhost:7220/weatherforecast HTTP/3
###
İstek başlıkları
Bir veya daha fazla üst bilgi eklemek için her bir üst bilgiyi, istek satırından hemen sonra ayrı bir satıra ekleyin. İstek satırıyla ilk üst bilgi arasına veya sonraki üst bilgi satırları arasına boş satır eklemeyin. Biçimi, aşağıdaki örneklerde gösterildiği gibi şeklindedir HeaderName: Value:
GET https://localhost:7220/weatherforecast
Date: Wed, 27 Apr 2023 07:28:00 GMT
###
GET https://localhost:7220/weatherforecast
Cache-Control: max-age=604800
Age: 100
###
Önemli
Üstbilgilerle kimlik doğrulayan bir API’yi çağırırken, herhangi bir gizli bilgiyi kaynak kodu deposuna eklemeyin. Bu makalenin devamında ASP.NET Core kullanıcı gizli dizileri, Azure Key Vault ve DPAPI şifrelemesi gibi gizli dizileri depolamak için desteklenen yöntemlere bakın.
İstek içeriği
Aşağıdaki örnekte gösterildiği gibi istek gövdesini boş bir satırdan sonra ekleyin:
POST https://localhost:7220/weatherforecast
Content-Type: application/json
Accept-Language: en-US,en;q=0.5
{
"date": "2023-05-10",
"temperatureC": 30,
"summary": "Warm"
}
###
Açıklamalar
# veya // ile başlayan satırlar yorumdur. Bu satırlar, Visual Studio HTTP istekleri gönderdiğinde yok sayılır.
Değişkenler
ile @ başlayan bir satır, söz dizimini @VariableName=Valuekullanarak bir değişken tanımlar.
Değişken adı büyük/küçük harfe duyarlıdır ve boşluk içeremez.
Değer, null değeri temsil eden değer null de dahil olmak üzere herhangi bir karakter içerebilir.
Daha sonra dosyada tanımlanan isteklerde değişkenlere başvurulabilir. Adlarına çift süslü ayraçlar, {{ ve }} sarılarak bunlara referans verilir. Aşağıdaki örnekte, bir istekte tanımlanan ve kullanılan iki değişken gösterilmektedir:
@hostname=localhost
@port=44320
GET https://{{hostname}}:{{port}}/weatherforecast
Değişkenler, dosyada daha önce tanımlanmış olan diğer değişkenlerin değerleri kullanılarak tanımlanabilir. Aşağıdaki örnek, önceki örnekte gösterilen iki değişken yerine istekte bir değişken kullanır:
@hostname=localhost
@port=44320
@host={{hostname}}:{{port}}
GET https://{{host}}/api/search/tool
Ortam dosyaları
Değişkenlere farklı ortamlarda farklı değerler vermek için adlı http-client.env.jsonbir dosya oluşturun. Dosyayı, .http dosyasıyla aynı dizinde veya onun üst dizinlerinden birinde bulun. Aşağıda bir ortam dosyası örneği verilmiştir:
{
"dev": {
"HostAddress": "https://localhost:44320"
},
"remote": {
"HostAddress": "https://contoso.com"
}
}
Ortam dosyası, önceki örnekteki "dev" ve "remote" gibi bir veya daha fazla adlandırılmış ortam içeren bir JSON dosyasıdır. Her adlandırılmış ortam, önceki örnekte olduğu gibi HostAddress bir veya daha fazla değişken içerir. Ortam dosyasındaki değişkenlere, aşağıdaki örnekte gösterildiği gibi diğer değişkenlerle aynı şekilde başvurulur:
GET {{HostAddress}}/api/search/tool
İstek gönderilirken değişken için kullanılan değer, .http dosya düzenleyicisinin sağ üst köşesindeki ortam seçici açılır menüsü tarafından belirlenir. Aşağıdaki ekran görüntüsünde seçici gösterilmektedir:
Ortam dosyasının proje klasöründe olması gerekmez. Visual Studio, dosyanın bulunduğu .http klasörde bir ortam dosyası arar. Bu klasörde değilse, Visual Studio bulmak için üst dizinlere bakar. adlı http-client.env.json bir dosya bulunduğunda arama sona erer. Dosyaya .http en yakın bulunan dosya kullanılır.
Dosyayı .http oluşturduktan veya düzenledikten sonra, ortam seçiciye yansıtılan değişiklikleri görmek için projeyi kapatıp yeniden açmanız gerekebilir. Ortam seçiciyi seçmek için F6 tuşuna basın.
Visual Studio aşağıdaki durumlarda uyarılar görüntüler:
- Dosya,
.httpdosyada veya ortam dosyasında tanımlanmayan.httpbir değişkene başvurur. - Ortam dosyası,
.httpdosyasında başvurulmayan bir değişken içeriyor.
Ortam dosyasında tanımlanan değişken, dosyada .http tanımlanan değişkenle aynı veya farklı olabilir. Bir değişken hem dosyada hem de .http ortam dosyasında tanımlanmışsa, dosyadaki .http değer ortam dosyasındaki değeri geçersiz kılar.
Paylaşılan değişkenler
$shared, birden çok ortam için aynı olan değerler için özel bir ortam adıdır. Örneğin, aşağıdaki ortam dosyasını (http-client.env.json):
{
"$shared": {
"HostAddress": "https://localhost:7293"
},
"dev1": {
"username": "dev1user"
},
"dev2": {
"username": "dev2user"
},
"staging": {
"username": "staginguser",
"HostAddress": "https://staging.contoso.com"
}
}
Yukarıdaki örnekte, $shared ortamı HostAddressdeğeriyle localhost:7293 değişkenini tanımlar. değeri HostAddress olan localhost:7293 değişkeni, HostAddresstanımlamayen ortamlar için varsayılan olarak çalışır.
dev1 veya dev2 ortamı tanımlandığında, HostAddress ve $shared bir dev1 değişkeni tanımlamadığından dev2 değeri HostAddress ortamından gelir.
staging ortamı tanımlandığında, HostAddress değeri https://staging.contoso.comolarak ayarlanır ve bu ayarlama ile varsayılan $shared geçersiz kılınır.
İstek değişkenleri
Aynı .http dosyasındaki bir HTTP isteğindeki değerleri başka bir http isteğine geçirebilirsiniz.
Aşağıdaki isteği adlandırmak için istek URL'sinin hemen öncesinde bulunan tek satırlı bir açıklama oluşturun. Örneğin, aşağıdaki satırlar isteği
loginadlandırmanın alternatif yollarını gösterir:# @name login https://contoso.com/api/login HTTP/1.1// @name login https://contoso.com/api/login HTTP/1.1Aynı HTTP dosyasındaki sonraki isteklerde, isteğe başvurmak için istek adını kullanın.
Yanıtın istediğiniz belirli bölümünü ayıklamak için aşağıdaki söz dizimini kullanın.
{{<request name>.(response|request).(body|headers).(*|JSONPath|XPath|<header name>)}}.Bu söz dizimi, isteklerin kendisinden veya yanıttan (
request|response) değerleri ayıklamanıza olanak tanır. İstek veya yanıt için, gövde veya başlıklardan değerleri ayıklayabilirsiniz (body|headers).bodyseçildiğinde söz diziminin*|JSONPath|XPathbölümü uygulanır:*yanıt içeriklerinin tamamını ayıklar.Örnek:
{{login.response.body.*}}JSON yanıtları için, belirli bir özelliği veya özniteliği ayıklamak için JSONPath kullanın.
Örnek:
{{login.response.body.$.token}}XML yanıtları için XPath kullanarak belirli bir özelliği veya özniteliği ayıklayın.
Örnek:
{{login.response.body./token}}
headersseçildiğinde, üst bilgi adı üst bilginin tamamını ayıklar. Header adları büyük/küçük harfe duyarlı değildir.Örnek:
{{login.response.headers.Location}}
Adlandırılmış bir isteğin yanıtına başvurmak istiyorsanız, önce yanıtını almak için adlandırılmış isteği el ile tetiklemeniz gerekir. Yanıttan değerleri ayıkladığınızda, istek birden çok kez gönderildiyse en son yanıtı alırsınız.
Örnek istek değişkeni kullanımı
Örneğin, HTTP dosyanızın çağıranın kimliğini doğrulayan bir isteği olduğunu ve bunu loginolarak adlandırdığını varsayalım. Yanıt gövdesi, tokenadlı bir özellikte taşıyıcı belirtecini içeren bir JSON belgesidir. Sonraki isteklerde, bu bearer token'ı bir Authorization üst bilgisinde kullanmak istiyorsunuz. Aşağıdaki örnek bunu yapar:
# @name login
POST {{TodoApi_HostAddress}}/users/token
Content-Type: application/json
{
"username": "{{myusername}}",
}
###
GET {{TodoApi_HostAddress}}/todos
Authorization: Bearer {{login.response.body.$.token}}
###
Söz dizimi {{login.response.body.$.token}} taşıyıcı belirtecini temsil eder:
-
login: İstek adıdır. -
response: HTTP yanıt nesnesine başvurur. -
body: HTTP yanıtının gövdesine başvurur. -
$: Yanıt gövdesindeki JSON belgesinin kök öğesini temsil eder. -
token: JSON belgesi içindeki belirli özelliğe başvurur.
İstek değişkenlerini kullanmadan belirteci oturum açma yanıtından el ile ayıklamanız ve sonraki isteklerin üst bilgisine eklemeniz gerekir. İstek değişkenleri bu işlemi otomatikleştirmenizi sağlar.
Kullanıcıya özgü ortam dosyaları
Kullanıcıya özgü bir değer, bir geliştiricinin test etmek istediği ancak ekiple paylaşmak istemediği herhangi bir değerdir.
http-client.env.json dosyası varsayılan olarak kaynak denetime iade edilir, bu nedenle kullanıcıya özgü değerler eklemeyin. Bunun yerine, http-client.env.json.useradlı bir dosyaya kullanıcıya özgü değerler ekleyin.
http-client.env.json.user dosyası, http-client.env.json dosyasıyla aynı klasörde bulunur.
.user ile biten dosyalar, Visual Studio kaynak denetimi özellikleri kullanılırken varsayılan olarak kaynak denetiminden dışlanır.
http-client.env.json Dosya yüklendiğinde, Visual Studio eşdüzey http-client.env.json.user bir dosya arar. Bir değişken bir ortamda hem http-client.env.json dosyasında hem de http-client.env.json.user dosyasında tanımlanmışsa, http-client.env.json.user dosyasındaki değer geçerli olur.
Kullanıcıya özgü bir ortam dosyasının nasıl çalıştığını gösteren örnek bir senaryo aşağıda verilmiştir. Dosyada .http aşağıdaki içeriğe sahip olduğunu varsayalım:
GET {{HostAddress}}/{{Path}}
Accept: application/json
Dosyanın aşağıdaki içeriği içerdiğini varsayalım http-client.env.json :
{
"dev": {
"HostAddress": "https://localhost:7128",
"Path": "/weatherforecast"
},
"remote": {
"HostAddress": "https://contoso.com",
"Path": "/weatherforecast"
}
}
Ayrıca aşağıdaki içeriği içeren kullanıcıya özgü bir ortam dosyası olduğunu varsayalım:
{
"dev": {
"Path": "/swagger/index.html"
}
}
Kullanıcı "dev" ortamını seçtiğinde, istek https://localhost:7128/swagger/index.html'a gönderilir çünkü http-client.env.json.user dosyasındaki Path değeri, http-client.env.json dosyasındaki değeri geçersiz kılar.
Aynı ortam dosyalarıyla, değişkenlerin dosyada .http tanımlandığını varsayalım:
@HostAddress=https://contoso.com
@Path=/weatherforecast
GET {{HostAddress}}/{{Path}}
Accept: application/json
Bu senaryoda, .http dosyalarındaki değişken tanımları ortam dosyası tanımlarını geçersiz kıldığı için "dev" ortam isteği https://contoso.com/weatherforecast öğesine gönderilir.
ASP.NET Core kullanıcı sırları
Kullanıcı gizli dizilerinden bir değer almak için, ASP.NET Core projesiyle aynı klasörde bulunan bir ortam dosyasını kullanın. Ortam dosyasında, provider ve secretName özelliklerine sahip bir değişken tanımlayın.
provider değerini AspnetUserSecrets olarak ayarlayın ve secretName değerini istenen kullanıcı sırrının adına ayarlayın. Örneğin, aşağıdaki ortam dosyası, değerini config:ApiKeyDev kullanıcı gizlisinden alan ApiKeyDev adlı bir değişken tanımlar:
{
"dev": {
"ApiKeyDev": {
"provider": "AspnetUserSecrets",
"secretName": "config:ApiKeyDev"
}
}
}
Bu değişkeni .http dosyasında kullanmak için, ona standart bir değişken gibi başvurun. Örneğin:
GET {{HostAddress}}{{Path}}
X-API-KEY: {{ApiKeyDev}}
İstek gönderildiğinde, ApiKeyDev gizli anahtarının değeri X-API-KEY başlığında yer alır.
Siz dosyaya http yazarken, düzenleyici değişken adı için bir tamamlanma listesi gösterir ancak değerini göstermez.
Azure Key Vault
Azure Key Vault , Azure'da gizli dizi yönetimi için kullanılabilecek çeşitli anahtar yönetimi çözümlerinden biridir.
.http dosyaları için şu anda desteklenen üç gizli bilgi deposu arasında, farklı kullanıcılar arasında gizli bilgileri paylaşmak için en iyi seçim Key Vault'tur. Diğer iki seçenek olan ASP.NET User Secrets ve DPAPI encryption kolayca paylaşılamaz.
Azure Key Vault'tan bir değer kullanmak için, visual studio'da istenen Key Vault'a erişimi olan bir hesapla oturum açmanız gerekir.
Gizli bilgiye erişmek için gereken meta verilerle bir ortam dosyasında bir değişken tanımlayın. Değişkeni aşağıdaki örnekte adlandırılmıştır AKVSecret :
{
"dev": {
"AKVSecret": {
"provider": "AzureKeyVault",
"secretName": "SecretInKeyVault",
"resourceId": "/subscriptions/3a914c59-8175a9e0e540/resourceGroups/my-key-vault-rg/providers/Microsoft.KeyVault/vaults/my-key-vault-01182024"
}
}
}
değişkeni AKVSecret değerini Azure Key Vault'tan çeker. Aşağıdaki özellikler AKVSecret üzerinde tanımlıdır:
| Veri Akışı Adı | Açıklama |
|---|---|
| sağlayıcı | Key Vault için her zaman kullanın AzureKeyVault. |
| secretName | Çıkarılacak gizli bilginin adı. |
| resourceId | Erişilecek belirli Key Vault için Azure kaynak kimliği. |
Özelliğin resourceId değeri Azure portalında bulunabilir. Bulmak için Ayarlar > Özellikleri'ne gidin.
secretName için Azure portalındaki Gizli diziler sayfasında görünen gizli dizinin adını kullanın.
Örneğin, aşağıdaki .http dosyada bu gizli dizi değerini kullanan bir istek vardır.
GET {{HostAddress}}{{Path}}
X-AKV-SECRET: {{akvSecret}}
DPAPI şifrelemesi
Windows'ta, hassas verileri şifrelemek için kullanılabilecek bir Veri Koruma API'si (DPAPI) vardır. Verileri şifrelemek için DPAPI kullanıldığında, şifrelenmiş değerler her zaman makineye özgüdür ve dosyalarda .http da kullanıcıya özgüdür. Bu değerler diğer kullanıcılarla paylaşılamaz.
Bir değeri şifrelemek için aşağıdaki konsol uygulamasını kullanın:
using System.Security.Cryptography;
using System.Text;
string stringToEncrypt = "Hello, World!";
byte[] encBytes = ProtectedData.Protect(Encoding.Unicode.GetBytes(stringToEncrypt), optionalEntropy: null, scope: DataProtectionScope.CurrentUser);
string base64 = Convert.ToBase64String(encBytes);
Console.WriteLine(base64);
Yukarıdaki konsol uygulaması System.Security.Cryptography.ProtectedData NuGet paketine başvurur. Şifrelenmiş değerin .http dosyasında çalışmasını sağlamak için, kapsamı DataProtectionScope.CurrentUser olarak ayarlayarak şifreleyin. Şifrelenmiş değer, ortam dosyasına kopyalanıp yapıştırılabilen base64 kodlanmış bir dizedir.
Ortam dosyasında, provider ve value özelliklerine sahip bir değişken oluşturun.
provider öğesini Encrypted olarak ayarlayın ve value öğesini şifrelenmiş değere ayarlayın. Örneğin, aşağıdaki ortam dosyası, değerini DPAPI ile şifrelenmiş bir dizeden alan dpapiValue adlı bir değişken tanımlar.
{
"dev": {
"dpapiValue": {
"provider": "Encrypted",
"value": "AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAA5qwfg4+Bhk2nsy6ujgg3GAAAAAACAAAAAAAQZgAAAAEAACAAAAAqNXhXc098k1TtKmaI4cUAbJVALMVP1zOR7mhC1RBJegAAAAAOgAAAAAIAACAAAABKu4E9WC/zX5LYZZhOS2pukxMTF9R4yS+XA9HoYF98GzAAAAAzFXatt461ZnVeUWgOV8M/DkqNviWUUjexAXOF/JfpJMw/CdsizQyESus2QjsCtZlAAAAAL7ns3u9mEk6wSMIn+KNsW/vdAw51OaI+HPVrt5vFvXRilTtvGbU/JnxsoIHj0Z7OOxlwOSg1Qdn60zEqmlFJBg=="
}
}
}
Önceki ortam dosyasıyla, dpapiValue dosyada .http diğer değişkenler gibi kullanılabilir. Örneğin:
GET {{HostAddress}}{{Path}}
X-DPAPI-Secret: {{dpapiSecret}}
Bu istek gönderildiğinde, X-DPAPI-Secret şifresi çözülmüş gizli değeri içerir.
Ortam değişkenleri
Ortam değişkeninin değerini almak için kullanın $processEnv. Aşağıdaki örnek, USERNAME ortam değişkeninin değerini X-UserName üst bilgisine yerleştirir.
GET {{HostAddress}}{{Path}}
X-UserName: {{$processEnv USERNAME}}
Var olmayan bir ortam değişkenine erişmek için $processEnv kullanmaya çalışırsanız, .http dosya düzenleyicisi bir hata iletisi görüntüler.
.env dosyaları
Bir dosyada .env tanımlanan değişkenin değerini almak için kullanın $dotenv. Dosya .env proje klasöründe olmalıdır.
$dotenv biçimi, $processEnv için olanla aynıdır. Örneğin, dosyada .env bu içerik varsa:
USERNAME=userFromDotenv
Dosyada .http şu içerik vardır:
GET {{HostAddress}}{{Path}}
X-UserName: {{$dotenv USERNAME}}
X-UserName başlıkta "userFromDotenv" yer alacak.
Düzenleyiciye girildiğinde $dotenv , dosyada .env tanımlanan değişkenlerin tamamlanmalarını gösterir.
Not
.env dosyalar varsayılan olarak kaynak denetiminden dışlanmayabilir, bu nedenle gizli dizi değerlerinin denetlenmemesi için dikkatli olun.
Rastgele tamsayılar
Rastgele bir tamsayı oluşturmak için kullanın $randomInt. Sözdizimi {{$randomInt [min max]}} şeklindedir; burada min ve max değerleri isteğe bağlıdır.
Tarihler ve saatler
-
$datetimeUTC'de birdatetimedize oluşturur. Söz dizimi, biçim ve ofset seçeneklerinin isteğe bağlı olduğu{{$datetime [format] [offset option]}}şeklindedir. -
$localDatetimeyerel saat diliminde birdatetimedize oluşturur. Sözdizimi{{$localDatetime [format] [offset option]}}şeklindedir; biçim ve uzaklık seçenekleri isteğe bağlıdır. -
$timestamp, UTC'de birtimestampoluşturur.timestamp, UTC saatinde Unix Dönemi'nin üzerinden geçen saniye sayısıdır. Söz dizimi{{$timestamp [offset option]}}şeklindedir; burada offset seçeneği isteğe bağlıdır.
[format] seçeneği, rfc1123, iso8601 veya tırnak içinde özel bir biçimden biridir. Örneğin:
GET https://httpbin.org/headers
X-CUSTOM: {{$datetime "dd-MM-yyyy"}}
X-ISO8601: {{$datetime iso8601}}
X-ISO8601L: {{$localDatetime iso8601}}
X-RFC1123: {{$datetime rfc1123}}
X-RFC1123L: {{$localDatetime rfc1123}}
Yukarıdaki örneklerin oluşturduğu bazı örnek değerler şunlardır:
{
"headers": {
"X-Custom": "17-01-2024",
"X-Iso8601": "2024-01-17T22:59:55.5345770+00:00",
"X-Iso8601L": "2024-01-17T14:59:55.5345770-08:00",
"X-Rfc1123": "Wed, 17 Jan 2024 22:59:55 GMT",
"X-Rfc1123L": "Wed, 17 Jan 2024 14:59:55 -08"
}
}
[offset option] sözdizimi, numberunit biçimindedir; burada number bir tamsayıdır ve unit aşağıdaki değerlerden biridir:
unit |
Açıklama |
|---|---|
ms |
Milisaniye |
s |
Saniye |
m |
Dakika |
h |
Saat |
d |
Gün sayısı |
w |
Haftalar |
M |
Aylar |
y |
Yıl |
Örneğin:
GET https://httpbin.org/headers
X-Custom-Minus-1-Year: {{$datetime "dd-MM-yyyy" -1 y}}
X-RFC1123-Plus-1-Day: {{$datetime rfc1123 1 d}}
X-Timestamp-Plus-1-Year: {{$timestamp 1 y}}
Yukarıdaki örneklerin oluşturduğu bazı örnek değerler şunlardır:
{
"headers": {
"X-Custom-Minus-1-Year": "17-01-2023",
"X-Rfc1123-Plus-1-Day": "Thu, 18 Jan 2024 23:02:48 GMT",
"X-Timestamp-Plus-1-Year": "1737154968"
}
}
Yukarıdaki örneklerden bazıları ücretsiz açık kaynak web sitesi <httpbin.org> kullanır. Bu, Microsoft'a bağlı olmayan bir üçüncü taraf web sitesidir. Bu örneklerde, istekte gönderilen başlıkları içeren bir yanıt gövdesi döndürür. Api testi için bu kaynağı kullanmanın diğer yolları hakkında bilgi için, httpbin.org sitesinin giriş sayfasınabakın.
Desteklenmeyen söz dizimi
Visual Studio 2022 .http dosya düzenleyicisi, Visual Studio Code REST İstemci uzantısının sahip olduğu tüm özelliklere sahip değildir. Aşağıdaki liste, yalnızca Visual Studio Code uzantısında kullanılabilen daha önemli özelliklerden bazılarını içerir:
- Birden fazla satıra yayılan istek satırı
- Dosya yolunu isteğin gövdesi olarak belirtin
- multipart/form-data kullanılırken gövde için karma biçim
- GraphQL istekleri
- cURL isteği
- cURL olarak kopyala/yapıştır
- İstek geçmişi
- Yanıt gövdesini dosyaya kaydetme
- Sertifika tabanlı kimlik doğrulaması
- İstem değişkenleri
- Yanıt önizlemesini özelleştirme
- İstek başına ayarlar
- Null koşullu veya null birleştirme işleçleri kullanma gibi null işleme değişkenleri (Visual Studio Code'da da desteklenmez)
Bir .http dosya oluşturun
Çözüm Gezgini bir ASP.NET Core projesine sağ tıklayın.
Bağlam menüsünde Yeni Öğe Ekle'yi>seçin.
Yeni Öğe Ekle iletişim kutusunda ASP.NET CoreGenel öğesini seçin.
HTTP Dosyası'nı seçin ve Ekle'yi seçin.
HTTP isteği gönderme
Bir dosyasına en az bir istek ekleyin ve dosyayı kaydedin.
İstek URL'si localhost'a ve projenin bağlantı noktasına işaret ederse, istek göndermeye çalışmadan önce projeyi çalıştırın.
Gönderilecek isteğin hemen üstünde bulunan
Send RequestveyaDebugbağlantısını seçin.İstek belirtilen URL'ye gönderilir ve yanıt düzenleyici penceresinin sağında ayrı bir bölmede görüntülenir.
.http dosya seçenekleri
Dosya davranışının .http bazı yönleri yapılandırılabilir. Kullanılabilir olanları görmek için Araçları>Seçenekleri>Metin Düzenleyicisi>Restbölümüne gidin. Örneğin, zaman aşımı ayarı Gelişmiş sekmesinde yapılandırılabilir. Seçenekler iletişim kutusunun ekran görüntüsü aşağıdadır:
Metin Düzenleyicisi ve Rest seçimini gösteren
Uç Nokta Gezgini'ni kullanma
Uç Noktalar Gezgini , bir web API'sinin tanımladığı tüm uç noktaları gösteren bir araç penceresidir. Araç, bir .http dosya kullanarak uç noktalara istek göndermenizi sağlar.
Uç Nokta Gezgini'nin görüntülediği ilk uç nokta kümesi statik olarak bulunur. Statik olarak bulunamaz bazı uç noktalar vardır. Örneğin, bir sınıf kitaplığı projesinde tanımlanan uç noktalar çalışma zamanına kadar bulunamaz. Bir web API'sini çalıştırdığınızda veya hatalarını ayıkladığınızda, Visual Studio sürüm 17.11 Preview çalışma zamanında uç noktaları dinamik olarak bulur ve bunları Uç Nokta Gezgini'ne ekler.
Uç Nokta Gezgini'ne gidin
Görünüm>Diğer PencerelerEndpoints Explorer öğesini seçin.
Dosyaya .http istek ekleme
Uç Nokta Gezgini'nde bir isteğe sağ tıklayın ve İstek Oluştur'a tıklayın.
- Dosya adı olarak proje adına sahip bir
.httpdosya varsa, istek bu dosyaya eklenir. - Aksi halde, dosya adı olarak proje adı kullanılarak bir
.httpdosyası oluşturulur ve istek bu dosyaya eklenir.
Yukarıdaki ekran görüntüsünde ASP.NET Core Web API'si proje şablonu tarafından tanımlanan uç noktalar gösterilmektedir. Aşağıdaki örnekte, seçili uç nokta için oluşturulan istek gösterilmektedir:
GET {{WebApplication1_HostAddress}}/weatherforecast/
Accept: application/json
###
İsteği bu makalenin önceki bölümlerinde açıklandığı gibi gönderin.
Ayrıca bkz.
ASP.NET Core