从头开始用JAVA创建一个自己的简单API并实现第三方调用

这篇具有很好参考价值的文章主要介绍了从头开始用JAVA创建一个自己的简单API并实现第三方调用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        相信大家对这个词汇并不陌生,通俗来说API就是程序之间的接口,在学习和工作中经常会调用别人的API,那么如果我们要做一个自己的API,要如何下手呢。本文将用Spring+JAVA编写一个简单的API,过程可供初学者参考。

        为了顾及完全没有经验的小白(比如我),本文内容将比较详细从创建开始讲起,大佬可以跳过。

一、创建项目

        其实API也是一个Spring项目,和别的spring项目没有很大的区别,所以创建项目的过程也是一样的。

        首先选择new project,并选择Spring Inilalizr,如下图所示

java开发api接口如何编写,JAVA,Spring,java,spring,mybatis,spring boot

        选择Dependencies,此处作为示范勾选常用几项

java开发api接口如何编写,JAVA,Spring,java,spring,mybatis,spring boot

 点击finish,项目创建成功。

二、创建一个自己的简单API

         创建项目完成之后我们来简单说一下配置部分,大多数时候我们调用别人的API都是用HTTP方式调用,这就需要URL,这个步骤我相信常用Spring的同学都不会陌生,所以我们简要提一下就行。

        ①创建application.yml文件

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/my_blog_db?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&serverTimezone=UTC
    username: root
    password: root

mybatis-plus:
  mapper-locations: classpath:mapper/*Mapper.xml
  type-aliases-package: com.example.test.pojo


server:
  port: 12345

        创建完成之后我们的程序就可以开始运行了

        下面正式开始制作API的过程,别人可以用各种方式请求调用你的API(如POSTGET),而我们也要有相应的返回值,返回值基本用通用返回Result类进行返回,所以,下面请建立一个Result类实现通用返回enums包utils包存放ResultEnum文件和ResultUtil文件,这两个文件分别用于枚举状态编写方法,目前的项目结构与代码如下所示:

java开发api接口如何编写,JAVA,Spring,java,spring,mybatis,spring boot

 Result类代码:

public class Result<T> {
    private Integer code;
    private String msg;
    private T data;
}

ResultUtil类代码:

public enum ResultEnum {
    ERROR(-1,"ERROR---------"),
    SUCCESS(100,"SUCCESS--------"),
    ;
    //这样就说明我们具有ERROR和SUCCESS两种状态,成功时返回100,SUCCESS

    private Integer code;
    private String msg;

    ResultEnum(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public Integer getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }
}

ResultUtil类代码:

public class ResultUtil {
    //对应我们在Enum中设置的两种状态
    public static Result success(Object object){
        Result result = new Result();
        result.setCode(ResultEnum.SUCCESS.getCode());
        result.setMsg(ResultEnum.SUCCESS.getMsg());
        result.setData(object);
        return result;
    }

    public static Result error(Object object){
        Result result = new Result();
        result.setCode(ResultEnum.ERROR.getCode());
        result.setMsg(ResultEnum.ERROR.getMsg());
        result.setData(object);
        return result;
    }
}

 下面我们来编写主体部分,在Controller中编写,确定我们要以什么方式让用户调用,此处采用POST方式演示使用,大家也可以自己编写GET方式。

@RestController
@RequestMapping("/api")
public class TestController {

    @PostMapping("/postTest")
    public Result postTest(@RequestBody boolean flag) throws Exception{
        /*
        *调用时传入一个参数flag,如果flag值不为true就返回成功数据,否则返回失败数据
        */
        System.out.println("已进入api接口------");
        System.out.println(flag);
        if(flag==true){
            return ResultUtil.success("返回成功数据Congraduations!");
        }

        return ResultUtil.error("抱歉sorry!");
    }

}

        到这里我们已经写完我们的简单API了,是不是看起来平平无奇?是的,我们的API只是演示使用,而API本身并不是什么特别高大上的东西,不过我们既然已经写完了,那我们就来试试看调用我们的API吧。

三、实现第三方调用

        调用部分我们在另一个JAVA文件中调用,编写一个用于调用API的类HTTPClientUtil

public class HttpClientUtil {
    public static String doPost(String pathUrl, String data){
        OutputStreamWriter out = null;
        BufferedReader br = null;
        String result = "";
        try {
            URL url = new URL(pathUrl);
            //打开和url之间的连接
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            //请求方法为"POST"
            conn.setRequestMethod("POST");
            // 设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在http正文内,因此需要设为true, 默认情况下是false;
            conn.setDoOutput(true);
            // Post请求不能使用缓存
            conn.setUseCaches(false);
            //设置请求属性
            conn.setRequestProperty("accept", "*/*");
            conn.setRequestProperty("connection", "Keep-Alive");  //维持长链接
            conn.setRequestProperty("Content-Type", "application/json;charset=utf-8");
            conn.connect();
            //调用,获取输出流
            out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");
            //发送请求参数
            out.write(data);
            out.flush();
            //获取URLConnection对象对应的输入流
            InputStream is = conn.getInputStream();
            //构造一个字符流缓存
            br = new BufferedReader(new InputStreamReader(is));
            String str = "";
            while ((str = br.readLine()) != null){
                result += str;
            }
            System.out.println(result);
            //关闭流
            is.close();
            //断开连接,disconnect是在底层tcp socket链接空闲时才切断,如果正在被其他线程使用就不切断。
            conn.disconnect();

        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

}

在别的类中调用该方法就可以啦

//url需要与我们在api中设置的对应,后一个是传参
String s = HttpClientUtil.doPost("http://localhost:12345/api/postTest","true");
System.out.println(s);

看一下返回结果,我们已经成功实现了调用

java开发api接口如何编写,JAVA,Spring,java,spring,mybatis,spring boot

 再看一下传入"false"时返回的结果

java开发api接口如何编写,JAVA,Spring,java,spring,mybatis,spring boot

由此可见我们已经实现了api中的小功能

在实际开发中很多时候传参都会采用json的方式,只要另作修改即可,还有很多种调用第三方api的方法,这边就不作赘述了,希望大家天天开心!(*^_^*)文章来源地址https://www.toymoban.com/news/detail-690238.html

到了这里,关于从头开始用JAVA创建一个自己的简单API并实现第三方调用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用Java和ChatGPT Api来创建自己的大模型聊天机器人

    什么是大模型? 大型语言模型(LLM)是一种深度学习模型,它使用大量数据进行预训练,并能够通过提示工程解决各种下游任务。LLM 的出发点是建立一个适用于自然语言处理的基础模型,通过预训练和提示工程的方式实现模型在新的数据分布和任务上的强大泛化能力。LLM 旨

    2024年02月12日
    浏览(49)
  • 从零开始学习 Java:简单易懂的入门指南之API、String类(八)

    1.1API概述 什么是API ​ API (Application Programming Interface) :应用程序编程接口 java中的API ​ 指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如

    2024年02月14日
    浏览(43)
  • 使用Flask Web创建一个调用ChatGPT API的网页--简单示例(linux环境下)

    前提:你应该要有一个能正常使用chatGPT的openAI账号;即你已经成功注册了chatGPT,并能正常使用。 下面是一个使用Flask Web框架创建调用ChatGPT API的网页的示例代码和工程结构: 具体的工程,你可以选择自己创建,也可以直接下载我创建好的工程,链接如下: https://download.csd

    2024年02月13日
    浏览(40)
  • 使用Flask Web创建一个调用ChatGPT API的网页--简单示例(Windows环境下)

    前提:你应该要有一个能正常使用chatGPT的openAI账号;即你已经成功注册了chatGPT,并能正常使用。 要使用Flask Web创建一个调用ChatGPT API的网页,你需要以下几个主要组成部分: ChatGPT API:一个可以处理用户输入并生成回复的ChatGPT模型的API。你可以使用OpenAI提供的GPT-3.5 Playgro

    2024年02月12日
    浏览(46)
  • 手把手教你实现一个JavaWeb项目:创建一个自己的网页博客系统(前端+后端)(一)

    一篇博客带你实现一个真正的项目!  先来看看它是什么样式的: 目录: 1、大体步骤🦖:         1、创建Maven项目🦕         2、引入依赖🦕         3、创建必要的目录🦕         4、编写代码🦕         5、打包部署(基于SmartTomcat)🦕         

    2024年02月06日
    浏览(57)
  • 从头学Java17-Stream API(二)结合Record、Optional

    Stream API 是按照map/filter/reduce方法处理内存中数据的最佳工具。 本系列教程由Record讲起,然后结合Optional,讨论collector的设计。 Java 语言为您提供了几种创建不可变类的方法。可能最直接的是创建一个包含final字段的final类。下面是此类的示例。 编写这些元素后,需要为字段添

    2024年02月12日
    浏览(43)
  • 【毕设必备】手把手带你用Python搭建一个简单的后端服务- API的创建,前后端交互的数据传递,GET,POST,JSON,FLASK

    Python是一种 流行 的高级编程语言,具有易于学习和使用的特性,被广泛应用于各种领域。 简单易学 :Python的语法清晰简洁,易于理解和学习。与其他编程语言相比,Python的语法设计非常直观,使得编程新手也能快速上手。 强大的标准库和丰富的第三方库 :Python拥有一个庞

    2024年02月04日
    浏览(173)
  • 记录自己从零开始创建个人小程序到发布的大致过程

    首先不管是要创建个人小程序还是公众号等,都要打开微信公众平台。本文以微信小程序为例,创建一个手工花名片。本文只用于自己学习记录。参考微信社区 1、打开微信公众,点击注册 链接:https://mp.weixin.qq.com/ 2、点击注册后,跳转页面,点击小程序 3、填写注册小程序

    2024年02月12日
    浏览(52)
  • 【Rust日报】用Rust从头实现一个C编译器

    一个声明式解析库 Untwine 发布0.4 Untwine是一个声明性解析库,它允许一种类似于使用自定义宏语法进行直接模式匹配的解析风格。这允许创建具有良好性能特征和高质量错误消息的极其紧凑的解析器。这些解析器实现起来很简单,有几个精心挑选的例子: 一个几乎完整的JSO

    2024年04月22日
    浏览(42)
  • 从零基础开始开发自己的第一个微信小程序

    通过本篇blog,你可以熟悉从零开始,搭建小程序开发环境,并运行起自己的第一个小程序。 1、 注册账号 2、 下载开发工具搭建开发环境 3、 创建工程,编写代码 4、 手机上查看效果 通过以上四步就能创建属于自己的小程序了。 注册完成后是这样的 小程序开发工具下载地址

    2024年02月14日
    浏览(82)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包