REST API sorunlarını giderme

Veri API oluşturucusunda yaygın REST uç nokta kullanılabilirliği, HTTP yöntemi, OData filtresi ve CORS sorunları için çözümler.

Sık sorulan sorular

DAB'de REST API nedir?

Veri API oluşturucusu, içinde dab-config.jsonyapılandırılan her varlık için otomatik olarak bir REST API oluşturur. API, OData kurallarını izler ve verileri okumak ve yazmak için standart HTTP yöntemlerini destekler. Ek kod gerekmez; DAB, HTTP isteklerini çalışma zamanında veritabanı sorgularına çevirir.

DAB hangi HTTP yöntemlerini destekler?

DAB, REST varlıkları için GET, POST, PUT, PATCH ve DELETE'yi destekler. Her yöntem bir veritabanı işlemiyle eşler: GET kayıtları okur, POST ekler, PUT değiştirir, PATCH güncelleştirir ve DELETE kaldırır. Varlık yapılandırmasındaki alanı kullanarak rest.methods varlık başına izin verilen yöntemleri kısıtlayabilirsiniz.

REST uç noktaları nasıl yapılandırılır?

REST uç noktaları /<rest-path>/<entity-name> desenini izler; burada <rest-path>, varsayılan olarak api ve <entity-name>, dab-config.json içindeki varlık anahtarıdır. Örneğin, adlı Products bir varlığa adresinden /api/Productserişilebilir. REST yolu, --rest.path seçeneği kullanılarak veya dab init içindeki dab-config.json düzenlenerek özelleştirilebilir.

Yaygın sorunlar

REST uç noktasında 404

Belirti: geri döndürme /api/EntityNameistekleri404 Not Found.

Neden: Varlık REST için etkinleştirilmemiş, URL'deki varlık adı yapılandırmayla eşleşmiyor veya REST yolu özelleştirilmiş.

Çözüm:dab-config.json açın ve varlığın "rest": { "enabled": true }'ye sahip olduğunu veya rest'ün false olarak açıkça ayarlanmadığını onaylayın. URL'nin tam varlık adını (büyük/küçük harfe duyarlı) kullandığını doğrulayın. REST yolu ile --rest.pathözelleştirilmişse, URL'yi uygun şekilde güncelleştirin.

405 Yöntemine İzin Verilmiyor

Belirti:POST, PUT, PATCH veya DELETE isteği 405 Method Not Allowed döndürür.

Neden: HTTP yöntemi varlığın rest.methods izin verilenler listesine dahil değildir.

Çözüm:dab-config.json içindeki varlığı bulmak için rest.methods dizisini kontrol edin. Gerekli yöntemi ekleyin, örneğin "methods": ["GET", "POST", "PATCH", "DELETE"]. Değişikliği uygulamak için yeniden çalıştırın dab start .

$filter sorgu beklenmeyen sonuçlar döndürüyor

Belirti: OData $filter ifadesi hiçbir sonuç veya gibi Invalid filter expressionbir hata döndürmez.

Neden: OData filtresi söz dizimi yanlış, alan adı varlığın kullanıma sunulan sütun adıyla eşleşmiyor veya değer biçimi sütun türüyle eşleşmiyor.

Çözünürlük: OData belirtimindeki filtre söz dizimini kontrol edin. Dize değerleri tek tırnak içine alınmalıdır (örneğin, $filter=Name eq 'Alice'). Varlıkta alan eşlemeleri yapılandırıldıysa, veritabanı sütun adı yerine eşlenmiş adı kullanın. Beklenmeyen sonuç kümelerini tanılamak için oluşturulan SQL için DAB günlüklerini denetleyin.

TARAYıCıdan REST uç noktasını çağıran CORS hatası

Belirti: DAB REST API'sine yönelik tarayıcı istekleri cors ilkesi hatasıyla başarısız olur.

Neden: DAB ana bilgisayar yapılandırması, izin verilen çıkış noktaları listesinde çağıranın kaynağını içermez.

Çözüm:host.cors.originsdab-config.json içindeki diziyi, ön uç kaynağını içerecek şekilde örneğin ["https://myapp.example.com"] olarak güncelleyin. Yerel geliştirme sırasında tüm çıkış noktalarına izin vermek için ayarlayın "origins": ["*"]. Yapılandırmayı güncelleştirdikten sonra DAB'yi yeniden başlatın. Üretim ortamlarında kullanmaktan * kaçının.