我们定义一套用户信息增删改查的接口,详细给大家介绍Feign客户端定义。

一:服务提供者暴露的接口

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

package com.wendao.provider.web;

 

import com.wendao.provider.pojo.User;

import org.springframework.web.bind.annotation.PathVariable;

import org.springframework.web.bind.annotation.RequestBody;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

 

import java.util.*;

 

 

@RestController

@RequestMapping("/user")

public class ProviderController {

 

    @RequestMapping(value = "/update")

    public Map update(@RequestBody User user) {

 

        System.out.println(user);

        //调用service层获取用户信息,这步省略...

        return new HashMap();

 

    }

 

 

 

    @RequestMapping(value = "/delete")

    public Map deleteByIds(Integer[] ids) {

        System.out.println(Arrays.toString(ids));

        //调用service层获取用户信息,这步省略...

        return new HashMap();

 

    }

 

 

 

 

    @RequestMapping(value = "/{userId}")

    public User findUserById(@PathVariable Integer userId) {

        System.out.println(userId);

        //调用service层获取用户信息,这步省略...

        return new User("jack"12);

    }

 

 

    @RequestMapping(value = "/search")

    public User search(Integer age,String name) {

        System.out.println("age:"+age+"name:"+name);

        //调用service层获取用户信息,这步省略...

        return new User("rose"12);

    }

 

    @RequestMapping(value = "/searchMap")

    public List<User> searchMap(@RequestBody  Map map) {

 

        System.out.println(map);

 

        //调用service层获取用户信息,这步省略...

        List<User> users = new ArrayList<>();

        users.add(new User("jack",12));

        users.add(new User("rose",18));

        return  users;

    }

 

}

 

回顾springmvc知识点:接口方法中获取数据有3类注解,分别是@PathVariable、@RequestBody、@RequestParam

@PathVariable:专门获取路径参数(restful风格路径)

 

第八篇:Feign使用注意事项

 

@RequestBody:专门获取json数据并将json数据转换成pojo

第八篇:Feign使用注意事项

 

@RequestParam:专门获取非json数据,如果名字对应一般可以省略不写。

 

第八篇:Feign使用注意事项

 

或者

 

第八篇:Feign使用注意事项

 

二:Feign接口定义:

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

@FeignClient("spring-cloud-service-provider")

public interface IuserBiz {

 

    @RequestMapping(value = "/user/update")

    public Map update(@RequestBody User user) ;

 

 

 

    @RequestMapping(value = "/user/delete")

    public Map deleteByIds(@RequestParam("ids") Integer[] ids) ;//@RequestParam不能省略,而且ids也不能省略

 

 

 

 

    @RequestMapping(value = "/user/{userId}")

    public User findUserById(@PathVariable("userid") Integer userId); //@PathVariable不能省略,而且userid也不能省略

 

 

    @RequestMapping(value = "/user/search")

    public User search(@RequestParam("age") Integer age,@RequestParam("name") String name);

 

    @RequestMapping(value = "/user/searchMap")

    public List<User> searchMap(@RequestBody Map map);

 

}

 

注意点:

第八篇:Feign使用注意事项

 

三:消费者调用服务接口

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

@RestController

@RequestMapping("/user")

public class ConsumerController {

 

    @Autowired

    private IuserBiz iuser;

 

 

    @RequestMapping(value = "/update")

    public Map update(@RequestBody User user) {

        System.out.println(user);

        return  iuser.update(user);

 

    }

 

 

 

    @RequestMapping(value = "/delete")

    public Map deleteByIds(Integer[] ids) {

        System.out.println(Arrays.toString(ids));

        return  iuser.deleteByIds(ids);

 

    }

 

 

 

 

    @RequestMapping(value = "/{userId}")

    public User findUserById(@PathVariable Integer userId) {

       return  iuser.findUserById(userId);

    }

 

 

    @RequestMapping(value = "/search")

    public User search(Integer age,String name) {

       return iuser.search(age,name);

    }

 

    @RequestMapping(value = "/searchMap")

    public List<User> searchMap(@RequestBody  Map map) {

 

        return  iuser.searchMap(map);

    }

  

}

 

 

 

 

相关文章:

  • 2021-11-23
  • 2021-11-15
  • 2021-10-04
  • 2017-12-09
  • 2021-06-11
  • 2022-02-16
  • 2021-10-15
猜你喜欢
  • 2021-09-06
  • 2021-12-18
  • 2021-12-14
  • 2022-01-01
  • 2021-08-22
  • 2022-12-23
相关资源
相似解决方案