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: Geliştirme tünelleri aracılığıyla CRUD API'lerini kullanıma sunma
Süre: 15 dakika
Eklentiler:CrudApiPlugin
Önkoşullar:Geliştirme Ara Sunucusu, Geliştirme Tünellerini Ayarlama
Geliştirme Proxy'si, CRUD API'lerini oluşturmak zorunda kalmadan benzetimini yapmanızı sağlar. Dev Proxy kullanarak API'lerin benzetimini yapmak zaman kazanmanızı ve geliştirmeyi hızlandırmanızı sağlar. API'nizi bulut hizmetleriyle tümleştirdiğinizde, bulut hizmetinin erişebilmesi için API'nizi İnternet üzerinden kullanıma sunmanız gerekir. Geliştirme Proxy'si tarafından simülasyonu yapılan bir CRUD API'sini İnternet'te kullanıma açmak için Geliştirme Tünelleri'ni kullanın. Bu makalede, Geliştirme Tünelleri kullanılarak İnternet'te kullanıma sunulacak bir CRUD API'sinin nasıl yapılandırılacağı açıklanmaktadır.
CRUD API'sini İnternet'te kullanıma sunulacak şekilde yapılandırma
Geliştirme Proxy'si tarafından simülasyonu yapılan bir CRUD API'sini İnternet'te kullanıma açmak için CRUD API'sini yapılandırarak başlayın.
Önemli
Şu anda HTTP CRUD API'lerini yalnızca Geliştirme Tünellerini kullanarak İnternet'te kullanıma açabilirsiniz.
CRUD API verilerini tanımlama
CRUD API'sini destekleyen orders-data.jsonadlı bir veri dosyası oluşturun, örneğin:
Dosya: orders-data.json
[
{
"OrderID": 10248,
"CustomerID": "VINET",
"EmployeeID": 5,
"OrderDate": "1996-07-04T00:00:00",
"RequiredDate": "1996-08-01T00:00:00",
"ShippedDate": "1996-07-16T00:00:00",
"ShipVia": 3,
"Freight": 32.38,
"ShipName": "Vins et alcools Chevalier",
"ShipAddress": "59 rue de l'Abbaye",
"ShipCity": "Reims",
"ShipPostalCode": "51100",
"ShipCountry": "France"
},
{
"OrderID": 10249,
"CustomerID": "TOMSP",
"EmployeeID": 6,
"OrderDate": "1996-07-05T00:00:00",
"RequiredDate": "1996-08-16T00:00:00",
"ShippedDate": "1996-07-10T00:00:00",
"ShipVia": 1,
"Freight": 11.61,
"ShipName": "Toms Spezialitäten",
"ShipAddress": "Luisenstr. 48",
"ShipCity": "Münster",
"ShipPostalCode": "44087",
"ShipCountry": "Germany"
}
]
CRUD API'sini yapılandırma
Ardından, CRUD API URL'sini, işlemlerini ve veri dosyasını belirttiğiniz orders-api.jsonadlı API yapılandırma dosyasını oluşturun.
baseUrl özelliğinde bir HTTP URL'si belirttiğinizden emin olun:
Dosya: orders-api.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/crudapiplugin.apifile.schema.json",
"baseUrl": "http://api.northwind.com/orders",
"auth": "none",
"dataFile": "orders-data.json",
"actions": [
{
"action": "getAll"
},
{
"action": "getOne",
"url": "/{order-id}",
"query": "$.[?(@.OrderID == {order-id})]"
},
{
"action": "create"
},
{
"action": "merge",
"url": "/{order-id}",
"query": "$.[?(@.OrderID == {order-id})]"
},
{
"action": "delete",
"url": "/{order-id}",
"query": "$.[?(@.OrderID == {order-id})]"
}
]
}
Geliştirme Proxy'si yapılandırmasını tanımlama
Ardından, devproxyrc.json etkinleştirilmiş bir CrudApiPlugin adlı Dev Proxy yapılandırma dosyası oluşturun. CruD API'niz için yapılandırdığınız URL'yi dinlemek için Geliştirme Proxy'sini yapılandırın:
Dosya: devproxyrc.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/rc.schema.json",
"plugins": [
{
"name": "CrudApiPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "ordersApi"
}
],
"urlsToWatch": [
"http://api.northwind.com/*"
],
"ordersApi": {
"apiFile": "orders-api.json"
}
}
Yapılandırmayı doğrulama
Dev Proxy çalıştırarak ve CRUD API'sine istek göndererek CRUD API'sinin düzgün çalıştığını doğrulayın.
Geçerli çalışma dizinindeki devproxyrc.json adlı dosyaya Dev Proxy yapılandırmasını kaydettiğinizi varsayarak Dev Proxy'yi başlatın.
devproxy
Curl kullanarak CRUD API'sini çağırın:
$ curl -x http://127.0.0.1:8000 http://api.northwind.com/orders
[
{
"OrderID": 10248,
"CustomerID": "VINET",
"EmployeeID": 5,
"OrderDate": "1996-07-04T00:00:00",
"RequiredDate": "1996-08-01T00:00:00",
"ShippedDate": "1996-07-16T00:00:00",
"ShipVia": 3,
"Freight": 32.38,
"ShipName": "Vins et alcools Chevalier",
"ShipAddress": "59 rue de l'Abbaye",
"ShipCity": "Reims",
"ShipPostalCode": "51100",
"ShipCountry": "France"
},
{
"OrderID": 10249,
"CustomerID": "TOMSP",
"EmployeeID": 6,
"OrderDate": "1996-07-05T00:00:00",
"RequiredDate": "1996-08-16T00:00:00",
"ShippedDate": "1996-07-10T00:00:00",
"ShipVia": 1,
"Freight": 11.61,
"ShipName": "Toms Spezialitäten",
"ShipAddress": "Luisenstr. 48",
"ShipCity": "Münster",
"ShipPostalCode": "44087",
"ShipCountry": "Germany"
}
]
CRUD API'sini İnternet üzerinden kullanıma sunma
CRUD API'sini İnternet üzerinden kullanıma açmak için Dev Proxy bağlantı noktasına eşlenmiş bir geliştirme tüneli başlatın. Tüneli CRUD API için yapılandırılan ana bilgisayar adını kullanacak şekilde yapılandırın.
Uyarı
Geliştirme tüneline anonim erişime izin vermek, geliştirme tüneli kimliğini tahmin edebiliyorsa internet üzerindeki herkesin yerel sunucunuza bağlanabileceği anlamına gelir.
$ devtunnel host -p 8000 -a --host-header api.northwind.com
Hosting port: 8000
Connect via browser: https://vpfm55qw.euw.devtunnels.ms:8000, https://vpfm55qw-8000.euw.devtunnels.ms
Inspect network activity: https://vpfm55qw-8000-inspect.euw.devtunnels.ms
Ready to accept connections for tunnel: vpfm55qw
Dev Proxy'nin curl kullanarak geliştirme tüneli aracılığıyla simülasyonunu yaptığı CRUD API'sini çağırın:
$ curl https://vpfm55qw-8000.euw.devtunnels.ms/orders
[
{
"OrderID": 10248,
"CustomerID": "VINET",
"EmployeeID": 5,
"OrderDate": "1996-07-04T00:00:00",
"RequiredDate": "1996-08-01T00:00:00",
"ShippedDate": "1996-07-16T00:00:00",
"ShipVia": 3,
"Freight": 32.38,
"ShipName": "Vins et alcools Chevalier",
"ShipAddress": "59 rue de l'Abbaye",
"ShipCity": "Reims",
"ShipPostalCode": "51100",
"ShipCountry": "France"
},
{
"OrderID": 10249,
"CustomerID": "TOMSP",
"EmployeeID": 6,
"OrderDate": "1996-07-05T00:00:00",
"RequiredDate": "1996-08-16T00:00:00",
"ShippedDate": "1996-07-10T00:00:00",
"ShipVia": 1,
"Freight": 11.61,
"ShipName": "Toms Spezialitäten",
"ShipAddress": "Luisenstr. 48",
"ShipCity": "Münster",
"ShipPostalCode": "44087",
"ShipCountry": "Germany"
}
]