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.
Bir bakışta
Hedef: API anahtarı kimlik doğrulaması ile CRUD API simülasyonu yapma
Süre: 10 dakika
Eklentiler:CrudApiPlugin
Önkoşullar:Geliştirme Ara Sunucusunu Ayarlama
Uygulama oluştururken genellikle arka uç API'leriyle etkileşim kurarsınız. Bazen bu API'ler henüz kullanılamamaktadır veya diğer ekipler bunları en son gereksinimleri karşılayacak şekilde güncelleştirmektedir. Beklemekten kaçınmak için genellikle ihtiyacınız olan verileri döndüren bir sahte API oluşturursunuz. Bu yaklaşım engellemenizi kaldırsa da, sonunda yerine gerçek api'yi koyabileceğiniz bir API oluşturmak için zaman harcamanız gerekir. API'nizin güvenliğini bir API anahtarıyla sağlamanız gerektiğinde daha da karmaşık hale gelir. Zaman kaybetmemek için, CRUD API'si simülasyonu yapmak ve geliştirmeyi hızlandırmak için Dev Proxy kullanabilirsiniz.
CrudApiPluginkullanarak, bellek içi veri deposuyla CRUD (Oluşturma, Okuma, Güncelleştirme, Silme) API'sinin benzetimini yapabilirsiniz. Basit bir yapılandırma dosyası kullanarak sahte API'nizin hangi URL'leri desteklediğini ve hangi verileri döndürdüğü tanımlayabilirsiniz. Eklenti, istemci tarafı uygulamalardan etki alanları arası kullanım için CORS'yi de destekler. Eklenti ayrıca API anahtarı kimlik doğrulamasını da desteklediğinden sahte API'nizin güvenliğini bir API anahtarıyla sağlayabilir ve uygulamanızın anahtarı doğru şekilde gönderdiğini test edebilirsiniz.
Scenario
Örneğin, kullanıcıların müşterileri yönetmesine olanak tanıyan bir uygulama oluşturuyorsunuz. Verileri almak için arka uç API'sinin /customers uç noktasını çağırmanız gerekir. API' nin güvenliği bir API anahtarıyla sağlanır. Arka uç ekibinin çalışmalarını bitirmesini beklememek için API'nin benzetimini yapmak ve ihtiyacınız olan verileri döndürmek için Dev Proxy kullanmaya karar verirsiniz.
Başlamadan önce
Müşteri verileriyle sanal crud API'si oluşturarak işe başlarsınız. API'nin çalıştığını onayladıktan sonra bir API anahtarıyla güvenliğini sağlayabilirsiniz.
Örnek 1: Üst bilgide API anahtarıyla güvenliği sağlanan bir CRUD API'sini simüle edin
İlk örnekte, istemcilerin bir HTTP üst bilgisinde gönderdiği bir API anahtarıyla API'nin tamamının güvenliğini sağlarsınız.
customers-api.json dosyasına API anahtarı kimlik doğrulaması hakkında bilgi ekleyin.
Dosya:customers-api.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.0.0/crudapiplugin.apifile.schema.json",
"baseUrl": "https://api.contoso.com/v1/customers",
"dataFile": "customers-data.json",
"auth": "apiKey",
"apiKeyAuthConfig": {
"apiKey": "my-secret-key",
"headerName": "X-API-Key"
},
"actions": [
{
"action": "getAll"
},
{
"action": "getOne",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]"
},
{
"action": "create"
},
{
"action": "merge",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]"
},
{
"action": "delete",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]"
}
]
}
auth özelliğini apiKey olarak ayarlayarak API'nin bir API anahtarıyla korunduğunu belirtirsiniz. özelliğinde apiKeyAuthConfig yapılandırma ayrıntılarını belirtirsiniz.
apiKey özelliği geçerli API anahtarını, özelliği ise headerName eklentinin anahtarı arayacağı HTTP üst bilgisini belirtir.
API'yi, X-API-Key üst bilgisi my-secret-key olarak ayarlanmadan çağırmaya çalışırsanız, 401 Unauthorized yanıtı alırsınız.
Örnek 2: Sorgu parametresinde API anahtarıyla güvenliği sağlanan bir CRUD API'sini simüle edin
Bazı API'lerde istemciler API anahtarını sorgu dizesi parametresi olarak gönderir.
queryParameterName özelliğini yapılandırarak bu davranışı simüle edebilirsiniz.
Dosyayı aşağıdaki gibi güncelleştirin customers-api.json :
Dosya:customers-api.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.0.0/crudapiplugin.apifile.schema.json",
"baseUrl": "https://api.contoso.com/v1/customers",
"dataFile": "customers-data.json",
"auth": "apiKey",
"apiKeyAuthConfig": {
"apiKey": "my-secret-key",
"queryParameterName": "api_key"
},
"actions": [
{
"action": "getAll"
},
{
"action": "getOne",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]"
},
{
"action": "create"
},
{
"action": "merge",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]"
},
{
"action": "delete",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]"
}
]
}
Bu örnekte eklenti, sorgu dizesi parametresinde api_key API anahtarını arar. Örneğin, çağrı https://api.contoso.com/v1/customers?api_key=my-secret-key başarılı olurken çağrı https://api.contoso.com/v1/customers bir 401 Unauthorized yanıt döndürür.
Örnek 3: Hem üst bilgi hem de sorgu parametresinden BIR API anahtarı kabul eden CRUD API'sini simüle etme
Eklentiyi hem üst bilgiden hem de sorgu parametresinden API anahtarını kabul etmek üzere yapılandırabilirsiniz. Eklenti önce üst bilgiyi kontrol eder. Üst bilgi API anahtarını içermiyorsa eklenti sorgu parametresini denetler.
Dosyayı aşağıdaki gibi güncelleştirin customers-api.json :
Dosya:customers-api.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.0.0/crudapiplugin.apifile.schema.json",
"baseUrl": "https://api.contoso.com/v1/customers",
"dataFile": "customers-data.json",
"auth": "apiKey",
"apiKeyAuthConfig": {
"apiKey": "my-secret-key",
"headerName": "X-API-Key",
"queryParameterName": "api_key"
},
"actions": [
{
"action": "getAll"
},
{
"action": "getOne",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]"
},
{
"action": "create"
},
{
"action": "merge",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]"
},
{
"action": "delete",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]"
}
]
}
Bu örnekte, üst bilgide veya X-API-Key sorgu parametresinde api_key API anahtarını içeren bir istek yetkilendirilmiştir.
Sonraki adım
CrudApiPlugin hakkında daha fazla bilgi edinin.
Samples
Ayrıca ilgili Dev Proxy örneklerine de bakın: