Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Sekilas
Tujuan: Mengekspos CRUD API melalui terowongan pengembangan
Waktu: 15 menit
Plugins:CrudApiPlugin
Prasyarat:Menyiapkan Dev Proxy, Dev Tunnels
Dev Proxy memungkinkan Anda untuk mensimulasikan API CRUD tanpa harus membangunnya. Mensimulasikan API menggunakan Dev Proxy memungkinkan Anda menghemat waktu dan mempercepat pengembangan. Saat mengintegrasikan API dengan layanan cloud, Anda perlu mengekspos API di internet sehingga layanan cloud dapat mengaksesnya. Untuk mengekspos CRUD API yang disimulasikan oleh Dev Proxy di internet, gunakan Dev Tunnels. Artikel ini menjelaskan cara mengonfigurasi CRUD API untuk diekspos di internet menggunakan Dev Tunnels.
Tips
API CRUD dalam artikel ini didasarkan pada sampel Dev Proxy untuk pengembangan database Northwind.
Mengonfigurasi CRUD API untuk diekspos di internet
Untuk mengekspos CRUD API yang disimulasikan oleh Dev Proxy di internet, mulailah dengan mengonfigurasi CRUD API.
Penting
Saat ini, Anda hanya dapat mengekspos API HTTP CRUD di internet menggunakan Dev Tunnels.
Mendefinisikan data CRUD API
Buat file data, bernama orders-data.json, yang mendukung CRUD API, misalnya:
File: 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"
}
]
Mengonfigurasi CRUD API
Selanjutnya, buat file konfigurasi API bernama orders-api.json, tempat Anda menentukan URL CRUD API, operasinya, dan file data. Pastikan untuk menentukan URL HTTP di properti baseUrl:
File: 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})]"
}
]
}
Definisikan konfigurasi Proksi Dev
Selanjutnya, buat file konfigurasi Proksi Dev bernama devproxyrc.json dengan CrudApiPlugin diaktifkan. Konfigurasikan Dev Proxy untuk mendengarkan URL yang Anda konfigurasi untuk CRUD API Anda:
File: 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"
}
}
Verifikasi konfigurasi
Verifikasi bahwa CRUD API berfungsi dengan benar dengan menjalankan Dev Proxy dan mengirim permintaan ke CRUD API.
Mulai Proksi Dev, dengan asumsi Anda menyimpan konfigurasi Proksi Dev dalam file bernama devproxyrc.json di direktori kerja saat ini:
devproxy
Panggil CRUD API menggunakan curl:
$ 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"
}
]
Mengekspos CRUD API melalui internet
Untuk membuka API CRUD ke internet, mulai terowongan pengembangan yang dipetakan ke port Proksi Pengembangan. Konfigurasikan terowongan untuk menggunakan nama host yang dikonfigurasi untuk CRUD API.
Peringatan
Mengizinkan akses anonim ke terowongan dev berarti siapa pun di internet dapat terhubung ke server lokal Anda, jika mereka dapat menebak ID terowongan dev.
$ 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
Panggil CRUD API yang disimulasikan Dev Proxy melalui terowongan dev menggunakan curl:
$ 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"
}
]