2017-09-15 32 views
1

我不得不接受了PARAMS發送路徑變量,REST API

@GetMapping(value = "/messages/getReceivedMessage") 
public 
HttpEntity<ReceivedMessageDTO> getReceivedMessage(
     @ApiParam(value = "The message ID", required = true) @RequestParam Long id 
) 

控制器和我得到這樣使用AngularJS數據

$http({ 
     url: '/messages/getReceivedMessage', 
     method: "GET", 
     params: { 
      id: messageId 
     } 
    }) 
     .then(function (response) { 
      $scope.message = response.data; 

      if(response.data.date_of_read === null) { 
       setDateOfRead(); 
      } 
     }) 
     .catch(function() { 
      console.log('failed'); 
     }); 

,但現在我已經決定改變REST API地址,它將接受路徑變量

@GetMapping(value = "/received/{id}") 
public 
HttpEntity<ReceivedMessageDTO> getReceivedMessage(
     @ApiParam(value = "The message ID", required = true) @PathVariable Long id 
) 

我如何發送路徑變量到控制器?

+0

所以是在urls angularJS中添加路徑變量的問題? – jrtapsell

回答

1

我不知道你需要什麼,但所有你需要做的就是使用URL您的端點像"/received/" + someId

或者在角像

$http.get('/received/' + someId) 

希望這有助於調用。

0

與URL

http({ url: '/received/' + messageId, method: "GET"}) .then(function (response) { $scope.message = response.data; if(response.data.date_of_read === null) { setDateOfRead(); } }) .catch(function() { console.log('failed'); }); 
0

一起傳遞消息ID您需要更改

$http({ 
     url: '/messages/getReceivedMessage', 
     method: "GET", 
     params: { 
      id: messageId 
     } 
    }) 

$http({ 
     url: '/messages/'+messageId, 
     method: "GET" 
     }) 

因爲,你的參數值成爲路徑的一部分。