乐趣区

关于objective-c:编写第一个GETPOST接口renrenfast框架系列1

配置好 renren-fast 脚手架,学习完 Spring MVC 架构后,我须要具体调试 renren-fast 的接口,比方要新增某个接口。

什么是前后端拆散

运行 renren-fast 我的项目时,咱们拜访 http://localhost:8080/renren-… 的后果:

能够看到,接口给出了相应的回应,状态码 401 Unauthorized 代表客户端谬误,指的是因为不足指标资源要求的身份验证凭证,发送的申请未失去满足。

运行 renren-fast-vue 我的项目时,咱们拜访 http://localhost:8001/#/login:

接着应用 Chrome 自带的网络工具:

点击 Headers 能够查看 Request URL:

以此,咱们确认拜访 后盾接口为:http://localhost:8080/renren-…

同时还能够看到如下获取页面信息的 headers:

申请的拜访接口是:http://localhost:8001/static/…

至此,咱们便搞清楚了 renren-fast 前后端拆散的业务是在说什么,即:后端逻辑应用 renren-fast 实现,前端申请获取的页面数据,应用 renren-fast-vue 实现。

写一个无需鉴权的 GET 接口

接下来咱们基于 renren-fast 框架仿照 “/captcha.jpg” 写第一个接口,“/captcha.jpg” 接口代码:

    /**
     * 验证码
     */
    @GetMapping("captcha.jpg")
    public void captcha(HttpServletResponse response, String uuid)throws IOException {response.setHeader("Cache-Control", "no-store, no-cache");
        response.setContentType("image/jpeg");

        // 获取图片验证码
        BufferedImage image = sysCaptchaService.getCaptcha(uuid);

        ServletOutputStream out = response.getOutputStream();
        ImageIO.write(image, "jpg", out);
        IOUtils.closeQuietly(out);
    }

咱们写一个 /testInterface 接口,在没写接口之前,咱们拜访:http://localhost:8080/renren-…,返回如下款式:

咱们编写接口:

    /**
     * 测试接口
     */
    @GetMapping("/testInterface")
    public String testInterface() {return "hello";}

部署完之后拜访:http://localhost:8080/renren-…,仍旧是展现:

那问题来了,咱们这个接口部署的有问题吗?显然是没有问题的,只是一个简略示例,接着咱们在代码中搜寻 “{“msg”:”![invalid token]”,”code”:401}”,能够发现有这么一句:

这意味着即便咱们部署了接口,如果 token 不存在,也依旧会返回 401,但咱们这个接口不须要 token 鉴权,所以要配置无需鉴权的逻辑。

咱们从哪里能够晓得怎么配置如需鉴权呢?还记得咱们下面发现的一个无需鉴权的接口吗?

http://localhost:8080/renren-…

/captcha.jpg 这个接口无需登录,只有任意批改 uuid 就能获取验证码,所以咱们全局搜寻 /captcha.jpg,能够发现有 3 处中央:

一处是配置 filterMap,也就是无需鉴权的接口,咱们在同样的中央加上咱们本人的 testInterface 接口:

另一处是配置接口参数、形容、回包数据等,咱们也简略配置一下:

配置结束后重新部署,从新拜访 http://localhost:8080/renren-…,能够发现页面展现:

接口部署胜利!

调试一个须要鉴权的 GET 接口

GET 接口能够简略了解为从服务器获取数据,只是读数据;而 POST 接口容许通过申请让服务器做一些事件:比方写数据、删数据等等。

当咱们登录时,是向 http://localhost:8080/renren-… 发送 POST 申请,咱们来应用 Postman 模仿发送 post 申请,

首先,咱们要获取 验证码,咱们申请:http://localhost:8080/renren-…,获取验证码:b676b

接着咱们查看 /sys/login 接口代码得悉:

登录接口所必须的参数有:

  • uuid
  • captcha
  • username
  • password

应用 Postman 发送 Post 申请胜利:

咱们获取 token 为 5d68f7779618adba8a1fb37df4bbe8e6,那是不是意味着咱们能够通过 token 拜访那些有权限的接口了呢?咱们试试:

咱们应用 Postman 发送 GET 申请:http://localhost:8080/renren-…

果然回包胜利了:

小结

通过本篇文章的学习,咱们明确了如下的内容:

  • renren-fast 前后端拆散的设计理念
  • 学会配置一个无需鉴权的简略接口
  • 通过 postman 调试了鉴权 post 逻辑和 get 逻辑

至此咱们能够自在编写 鉴权接口 和 非鉴权接口。


文章首发:问我社区

退出移动版