2015-01-21 8 views
0

자습서 here을 따라 스프링 부트를 사용하여 Java에서 RESTful 애플리케이션을 만들려고합니다. URL에서 식별자를 추출하여 요청을 처리 할 수 ​​있도록 URL을 수정하고 싶습니다.스프링 부트 REST 애플리케이션

그래서 http://localhost:8080/members/<memberId>은 ID가 <memberId> 인 회원에 대한 정보가있는 JSON 개체를 제공해야합니다. 나는 모른다.

  1. 모든 컨트롤러는 http://localhost:8080/members/ *이다.
  2. URL에서 URL을 추출하십시오.
  3. MVC 아키텍처에 따라 memberId를 추출하고이를 컨트롤러 또는 별도의 클래스의 일부로 사용해야합니까?

저는 Spring/Spring-boot/MVC를 처음 사용합니다. 시작하기에 꽤 혼란 스럽습니다. 그러니 내 초보자 용 질문을 참아주십시오.

답변

0

아래 코드에서 알 수 있듯이 고객을위한 서비스는 하나의 컨트롤러로 하나의 컨트롤러에서 새 고객을 추가 할 수 있습니다.

http://localhost:8080/customer/

http://localhost:8080/customer/ {ID}

@RestController("customer") 
public class SampleController { 


@RequestMapping(value = "/{id}", method = RequestMethod.GET) 
public Customer greetings(@PathVariable("id") Long id) { 
    Customer customer = new Customer(); 
    customer.setName("Eddu"); 
    customer.setLastname("Melendez"); 
    return customer; 
} 

@RequestMapping(value = "/{id}", method = RequestMethod.POST) 
public void add(@RequestBody Customer customer) { 

} 

class Customer implements Serializable { 

    private String name; 

    private String lastname; 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public void setLastname(String lastname) { 
     this.lastname = lastname; 
    } 

    public String getLastname() { 
     return lastname; 
    } 
} 

}

2

지도 단일 컨트롤러에 대한 모든 http://localhost:8080/members/ * :

그래서, 당신은이 개 서비스를해야합니다.

요청 매핑에서 자리 표시자를 사용하여 여러 URL을 처리 할 수 ​​있습니다. 예를 들어 :

@RequestMapping("/members/{id}") 

당신은의 이름과 일치하는 값으로 @PathVariable 주석을 사용하여 제어 방법에 주입 플레이스 홀더의 값을 가질 수

URL에서 ID를 추출 이 경우 자리, "ID"

@RequestMapping("/members/{id}") 
public Member getMember(@PathVariable("id") long id) { 
    // Look up and return the member with the matching id  
} 

해야 membe를 추출의 논리 rId 및 MVC 아키텍처 당 컨트롤러 또는 별도의 클래스의 일부로 사용할 수 있습니까?

위와 같이 Spring MVC가 URL로부터 멤버 ID를 추출하도록해야한다. 이것을 사용하는 경우 URL을 findById 메소드를 제공하는 일종의 저장소 또는 서비스 클래스에 전달할 것입니다.

관련 문제