国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

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

這篇具有很好參考價值的文章主要介紹了從頭開始用JAVA創(chuàng)建一個自己的簡單API并實(shí)現(xiàn)第三方調(diào)用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

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

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

一、創(chuàng)建項(xiàng)目

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

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

java開發(fā)api接口如何編寫,JAVA,Spring,java,spring,mybatis,spring boot

? ? ? ? 選擇Dependencies,此處作為示范勾選常用幾項(xiàng)

java開發(fā)api接口如何編寫,JAVA,Spring,java,spring,mybatis,spring boot

?點(diǎn)擊finish,項(xiàng)目創(chuàng)建成功。

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

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

? ? ? ? ①創(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)建完成之后我們的程序就可以開始運(yùn)行了

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

java開發(fā)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兩種狀態(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 {
    //對應(yīng)我們在Enum中設(shè)置的兩種狀態(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中編寫,確定我們要以什么方式讓用戶調(diào)用,此處采用POST方式演示使用,大家也可以自己編寫GET方式。

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

    @PostMapping("/postTest")
    public Result postTest(@RequestBody boolean flag) throws Exception{
        /*
        *調(diào)用時傳入一個參數(shù)flag,如果flag值不為true就返回成功數(shù)據(jù),否則返回失敗數(shù)據(jù)
        */
        System.out.println("已進(jìn)入api接口------");
        System.out.println(flag);
        if(flag==true){
            return ResultUtil.success("返回成功數(shù)據(jù)Congraduations!");
        }

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

}

????????到這里我們已經(jīng)寫完我們的簡單API了,是不是看起來平平無奇?是的,我們的API只是演示使用,而API本身并不是什么特別高大上的東西,不過我們既然已經(jīng)寫完了,那我們就來試試看調(diào)用我們的API吧。

三、實(shí)現(xiàn)第三方調(diào)用

? ? ? ? 調(diào)用部分我們在另一個JAVA文件中調(diào)用,編寫一個用于調(diào)用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");
            // 設(shè)置是否向httpUrlConnection輸出,因?yàn)檫@個是post請求,參數(shù)要放在http正文內(nèi),因此需要設(shè)為true, 默認(rèn)情況下是false;
            conn.setDoOutput(true);
            // Post請求不能使用緩存
            conn.setUseCaches(false);
            //設(shè)置請求屬性
            conn.setRequestProperty("accept", "*/*");
            conn.setRequestProperty("connection", "Keep-Alive");  //維持長鏈接
            conn.setRequestProperty("Content-Type", "application/json;charset=utf-8");
            conn.connect();
            //調(diào)用,獲取輸出流
            out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");
            //發(fā)送請求參數(shù)
            out.write(data);
            out.flush();
            //獲取URLConnection對象對應(yīng)的輸入流
            InputStream is = conn.getInputStream();
            //構(gòu)造一個字符流緩存
            br = new BufferedReader(new InputStreamReader(is));
            String str = "";
            while ((str = br.readLine()) != null){
                result += str;
            }
            System.out.println(result);
            //關(guān)閉流
            is.close();
            //斷開連接,disconnect是在底層tcp socket鏈接空閑時才切斷,如果正在被其他線程使用就不切斷。
            conn.disconnect();

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

}

在別的類中調(diào)用該方法就可以啦

//url需要與我們在api中設(shè)置的對應(yīng),后一個是傳參
String s = HttpClientUtil.doPost("http://localhost:12345/api/postTest","true");
System.out.println(s);

看一下返回結(jié)果,我們已經(jīng)成功實(shí)現(xiàn)了調(diào)用

java開發(fā)api接口如何編寫,JAVA,Spring,java,spring,mybatis,spring boot

?再看一下傳入"false"時返回的結(jié)果

java開發(fā)api接口如何編寫,JAVA,Spring,java,spring,mybatis,spring boot

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

在實(shí)際開發(fā)中很多時候傳參都會采用json的方式,只要另作修改即可,還有很多種調(diào)用第三方api的方法,這邊就不作贅述了,希望大家天天開心!(*^_^*)文章來源地址http://www.zghlxwxcb.cn/news/detail-690238.html

到了這里,關(guān)于從頭開始用JAVA創(chuàng)建一個自己的簡單API并實(shí)現(xiàn)第三方調(diào)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 使用Java和ChatGPT Api來創(chuàng)建自己的大模型聊天機(jī)器人

    什么是大模型? 大型語言模型(LLM)是一種深度學(xué)習(xí)模型,它使用大量數(shù)據(jù)進(jìn)行預(yù)訓(xùn)練,并能夠通過提示工程解決各種下游任務(wù)。LLM 的出發(fā)點(diǎn)是建立一個適用于自然語言處理的基礎(chǔ)模型,通過預(yù)訓(xùn)練和提示工程的方式實(shí)現(xiàn)模型在新的數(shù)據(jù)分布和任務(wù)上的強(qiáng)大泛化能力。LLM 旨

    2024年02月12日
    瀏覽(21)
  • 從零開始學(xué)習(xí) Java:簡單易懂的入門指南之API、String類(八)

    從零開始學(xué)習(xí) Java:簡單易懂的入門指南之API、String類(八)

    1.1API概述 什么是API ? API (Application Programming Interface) :應(yīng)用程序編程接口 java中的API ? 指的就是 JDK 中提供的各種功能的 Java類,這些類將底層的實(shí)現(xiàn)封裝了起來,我們不需要關(guān)心這些類是如何實(shí)現(xiàn)的,只需要學(xué)習(xí)這些類如何使用即可,我們可以通過幫助文檔來學(xué)習(xí)這些API如

    2024年02月14日
    瀏覽(95)
  • 使用Flask Web創(chuàng)建一個調(diào)用ChatGPT API的網(wǎng)頁--簡單示例(Windows環(huán)境下)

    前提:你應(yīng)該要有一個能正常使用chatGPT的openAI賬號;即你已經(jīng)成功注冊了chatGPT,并能正常使用。 要使用Flask Web創(chuàng)建一個調(diào)用ChatGPT API的網(wǎng)頁,你需要以下幾個主要組成部分: ChatGPT API:一個可以處理用戶輸入并生成回復(fù)的ChatGPT模型的API。你可以使用OpenAI提供的GPT-3.5 Playgro

    2024年02月12日
    瀏覽(28)
  • 使用Flask Web創(chuàng)建一個調(diào)用ChatGPT API的網(wǎng)頁--簡單示例(linux環(huán)境下)

    前提:你應(yīng)該要有一個能正常使用chatGPT的openAI賬號;即你已經(jīng)成功注冊了chatGPT,并能正常使用。 下面是一個使用Flask Web框架創(chuàng)建調(diào)用ChatGPT API的網(wǎng)頁的示例代碼和工程結(jié)構(gòu): 具體的工程,你可以選擇自己創(chuàng)建,也可以直接下載我創(chuàng)建好的工程,鏈接如下: https://download.csd

    2024年02月13日
    瀏覽(23)
  • 手把手教你實(shí)現(xiàn)一個JavaWeb項(xiàng)目:創(chuàng)建一個自己的網(wǎng)頁博客系統(tǒng)(前端+后端)(一)

    手把手教你實(shí)現(xiàn)一個JavaWeb項(xiàng)目:創(chuàng)建一個自己的網(wǎng)頁博客系統(tǒng)(前端+后端)(一)

    一篇博客帶你實(shí)現(xiàn)一個真正的項(xiàng)目! ?先來看看它是什么樣式的: 目錄: 1、大體步驟??: ????????1、創(chuàng)建Maven項(xiàng)目?? ????????2、引入依賴?? ????????3、創(chuàng)建必要的目錄?? ????????4、編寫代碼?? ????????5、打包部署(基于SmartTomcat)?? ????????

    2024年02月06日
    瀏覽(21)
  • 從頭學(xué)Java17-Stream API(二)結(jié)合Record、Optional

    Stream API 是按照map/filter/reduce方法處理內(nèi)存中數(shù)據(jù)的最佳工具。 本系列教程由Record講起,然后結(jié)合Optional,討論collector的設(shè)計。 Java 語言為您提供了幾種創(chuàng)建不可變類的方法。可能最直接的是創(chuàng)建一個包含final字段的final類。下面是此類的示例。 編寫這些元素后,需要為字段添

    2024年02月12日
    瀏覽(31)
  • 【畢設(shè)必備】手把手帶你用Python搭建一個簡單的后端服務(wù)- API的創(chuàng)建,前后端交互的數(shù)據(jù)傳遞,GET,POST,JSON,F(xiàn)LASK

    【畢設(shè)必備】手把手帶你用Python搭建一個簡單的后端服務(wù)- API的創(chuàng)建,前后端交互的數(shù)據(jù)傳遞,GET,POST,JSON,F(xiàn)LASK

    Python是一種 流行 的高級編程語言,具有易于學(xué)習(xí)和使用的特性,被廣泛應(yīng)用于各種領(lǐng)域。 簡單易學(xué) :Python的語法清晰簡潔,易于理解和學(xué)習(xí)。與其他編程語言相比,Python的語法設(shè)計非常直觀,使得編程新手也能快速上手。 強(qiáng)大的標(biāo)準(zhǔn)庫和豐富的第三方庫 :Python擁有一個龐

    2024年02月04日
    瀏覽(824)
  • 記錄自己從零開始創(chuàng)建個人小程序到發(fā)布的大致過程

    記錄自己從零開始創(chuàng)建個人小程序到發(fā)布的大致過程

    首先不管是要創(chuàng)建個人小程序還是公眾號等,都要打開微信公眾平臺。本文以微信小程序?yàn)槔?,?chuàng)建一個手工花名片。本文只用于自己學(xué)習(xí)記錄。參考微信社區(qū) 1、打開微信公眾,點(diǎn)擊注冊 鏈接:https://mp.weixin.qq.com/ 2、點(diǎn)擊注冊后,跳轉(zhuǎn)頁面,點(diǎn)擊小程序 3、填寫注冊小程序

    2024年02月12日
    瀏覽(23)
  • 【Rust日報】用Rust從頭實(shí)現(xiàn)一個C編譯器

    一個聲明式解析庫 Untwine 發(fā)布0.4 Untwine是一個聲明性解析庫,它允許一種類似于使用自定義宏語法進(jìn)行直接模式匹配的解析風(fēng)格。這允許創(chuàng)建具有良好性能特征和高質(zhì)量錯誤消息的極其緊湊的解析器。這些解析器實(shí)現(xiàn)起來很簡單,有幾個精心挑選的例子: 一個幾乎完整的JSO

    2024年04月22日
    瀏覽(22)
  • 從零基礎(chǔ)開始開發(fā)自己的第一個微信小程序

    從零基礎(chǔ)開始開發(fā)自己的第一個微信小程序

    通過本篇blog,你可以熟悉從零開始,搭建小程序開發(fā)環(huán)境,并運(yùn)行起自己的第一個小程序。 1、 注冊賬號 2、 下載開發(fā)工具搭建開發(fā)環(huán)境 3、 創(chuàng)建工程,編寫代碼 4、 手機(jī)上查看效果 通過以上四步就能創(chuàng)建屬于自己的小程序了。 注冊完成后是這樣的 小程序開發(fā)工具下載地址

    2024年02月14日
    瀏覽(95)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包