0
My 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