最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

教你從頭開始用JAVA創(chuàng)建一個自己的簡單API并實現(xiàn)第三方調用

 更新時間:2023年12月08日 15:45:23   作者:月色入戶  
在日常開發(fā)的時候,經常會遇到需要調用別人的接口的場景,下面這篇文章主要給大家介紹了關于如何從頭開始用JAVA創(chuàng)建一個自己的簡單API并實現(xiàn)第三方調用的相關資料,需要的朋友可以參考下

前言

相信大家對這個詞匯并不陌生,通俗來說API就是程序之間的接口,在學習和工作中經常會調用別人的API,那么如果我們要做一個自己的API,要如何下手呢。本文將用Spring+JAVA編寫一個簡單的API,過程可供初學者參考。

為了顧及完全沒有經驗的小白(比如我),本文內容將比較詳細從創(chuàng)建開始講起,大佬可以跳過。

一、創(chuàng)建項目

其實API也是一個Spring項目,和別的spring項目沒有很大的區(qū)別,所以創(chuàng)建項目的過程也是一樣的。

首先選擇new project,并選擇Spring Inilalizr,如下圖所示

選擇Dependencies,此處作為示范勾選常用幾項

 點擊finish,項目創(chuàng)建成功。

二、創(chuàng)建一個自己的簡單API

創(chuàng)建項目完成之后我們來簡單說一下配置部分,大多數時候我們調用別人的API都是用HTTP方式調用,這就需要URL,這個步驟我相信常用Spring的同學都不會陌生,所以我們簡要提一下就行。

 ①創(chuàng)建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

創(chuàng)建完成之后我們的程序就可以開始運行了

下面正式開始制作API的過程,別人可以用各種方式請求調用你的API(如POST、GET),而我們也要有相應的返回值,返回值基本用通用返回Result類進行返回,所以,下面請建立一個Result類實現(xiàn)通用返回、enums包utils包存放ResultEnum文件和ResultUtil文件,這兩個文件分別用于枚舉狀態(tài)編寫方法,目前的項目結構與代碼如下所示:

 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兩種狀態(tài),成功時返回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中設置的兩種狀態(tài)
    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吧。

三、實現(xiàn)第三方調用

調用部分我們在另一個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");
            //發(fā)送請求參數
            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);

看一下返回結果,我們已經成功實現(xiàn)了調用

 再看一下傳入"false"時返回的結果

由此可見我們已經實現(xiàn)了api中的小功能

在實際開發(fā)中很多時候傳參都會采用json的方式,只要另作修改即可,還有很多種調用第三方api的方法,這邊就不作贅述了!

總結

到此這篇關于從頭開始用JAVA創(chuàng)建一個自己的簡單API并實現(xiàn)第三方調用的文章就介紹到這了,更多相關JAVA創(chuàng)建API并第三方調用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 利用springmvc處理模型數據

    利用springmvc處理模型數據

    這篇文章主要介紹了如何利用springmvc 處理模型數據,幫助大家更好的理解和學習使用springmvc,感興趣的朋友可以了解下
    2021-03-03
  • Spring AI 使用本地 Ollama Embeddings的操作方法

    Spring AI 使用本地 Ollama Embeddings的操作方法

    使用 OpenAI 的 Embeddings 接口是有費用的,如果想對大量文檔進行測試,使用本地部署的 Embeddings 就能省去大量的費用,所以我們嘗試使用本地的 Ollama Embeddings,這篇文章主要介紹了Spring AI 使用本地 Ollama Embeddings,需要的朋友可以參考下
    2024-05-05
  • Java集合操作之List接口及其實現(xiàn)方法詳解

    Java集合操作之List接口及其實現(xiàn)方法詳解

    這篇文章主要介紹了Java集合操作之List接口及其實現(xiàn)方法,詳細分析了Java集合操作中List接口原理、功能、用法及操作注意事項,需要的朋友可以參考下
    2015-07-07
  • Java 如何利用緩沖流讀寫文件

    Java 如何利用緩沖流讀寫文件

    這篇文章主要介紹了Java 如何利用緩沖流讀寫文件的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java編程幾個循環(huán)實例代碼分享

    Java編程幾個循環(huán)實例代碼分享

    這篇文章主要介紹了Java編程幾個循環(huán)實例代碼分享,多看多練,小編覺得還是挺不錯的,這里分享給大家,供需要的朋友參考。
    2017-10-10
  • Java使用itext5實現(xiàn)PDF表格文檔導出

    Java使用itext5實現(xiàn)PDF表格文檔導出

    這篇文章主要介紹了Java使用itext5實現(xiàn)PDF表格文檔導出,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • 如何自定義一個log適配器starter

    如何自定義一個log適配器starter

    這篇文章主要介紹了如何自定義一個log適配器starter的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • Java?Spring?boot日期和時間統(tǒng)一設置三種方法

    Java?Spring?boot日期和時間統(tǒng)一設置三種方法

    時間和日期的統(tǒng)一設置在項目中經常是會遇到的,下面這篇文章主要給大家介紹了關于Java?Spring?boot日期和時間統(tǒng)一設置的三種方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-08-08
  • @Autowired注解在抽象類中失效的原因及解決

    @Autowired注解在抽象類中失效的原因及解決

    這篇文章主要介紹了@Autowired注解在抽象類中失效的原因及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • SpringBoot啟動時運行特定代碼的多種方式小結

    SpringBoot啟動時運行特定代碼的多種方式小結

    SpringBoot提供了多種方式在應用程序啟動時運行特定的代碼,包括CommandLineRunner、ApplicationRunner、@PostConstruct、InitializingBean、事件機制和自定義注解等,下面就來具體介紹一下
    2025-01-01

最新評論

陇南市| 宁陕县| 常山县| 巴马| 枣庄市| 桃园市| 潮安县| 利辛县| 万年县| 新乡市| 青阳县| 神池县| 威远县| 余干县| 太谷县| 承德市| 镇安县| 利川市| 太原市| 湄潭县| 河南省| 高邑县| 美姑县| 吕梁市| 德昌县| 偏关县| 海南省| 绥芬河市| 广昌县| 永安市| 延长县| 沂南县| 赤城县| 连江县| 历史| 都兰县| 咸宁市| 平山县| 周宁县| 玛曲县| 凉城县|