0
私のapiはDjango Rest Frameworkで設定されています。私はDjangoの末尾にスラッシュを付けて戦っているように感じています。私が理解していないいくつかの組み合わせがあるようです。基本クエリは、常にAPIのエンドポイントにあるすべてのオブジェクトを返します。 ??奇妙なクエリはすべてのアイテムを返します
// App config
var App = angular.module('App',['App.controllers','restangular','ngRoute','ngResource']);
App.config(function ($interpolateProvider, $httpProvider, $resourceProvider, RestangularProvider) {
RestangularProvider.setBaseUrl('/api/');
// Things I've tried
RestangularProvider.setBaseUrl('http://127.0.0.1:8000/api/');
RestangularProvider.setRequestSuffix('/');
// with suffix http://127.0.0.1:8000/api/tests/?value=404
// without suffix http://127.0.0.1:8000/api/tests?value=404
$resourceProvider.defaults.stripTrailingSlashes = false;
});
// In controller
// Items in database
// [{"itemID": 1,"value": 5,},{"itemID": 2,"value": 404,},{"itemID": 3,"value": 73,}]
var params = {'value': 404};
Restangular.all('tests').getList(params).then(function(items) {
var items = items
console.log(items)
});
// Even the standard $resource does the same thing.
var Foo = $resource('/api/tests', {value:'@somevalue'});
$scope.allItems = {};
Foo.query({value:404}, function(items) {
$scope.allItems = items;
});
は私が/のparams
"GET /api/tests?value=404 HTTP/1.1" 301 0
"GET /api/tests/?value=404 HTTP/1.1" 200 361
たぶん私は構造化テストにかけて/それに行くしようとしているテストのparamsそれ障害を見ることができます:ここで
コードです間違ったクエリ?実際に住所に行くことによってクエリをテストする方法はありますか?技術的にはhttp://127.0.0.1:8000/api/tests?value=404に移動しないでください。値が404のオブジェクトのリストだけがDRFに表示されますか? DRFはパラメータの前のURLの最後にスラッシュを入れます(http://127.0.0.1:8000/api/tests/?value=404)。
誰かがDjango Rest Frameworkで作業するための試行錯誤した方法がありますか?
実際に私たちはDRFコード、特にurls.pyとviews.pyを見る必要があります – pleasedontbelong