都 0202 年了,你還不會自己編寫一些簡單 API 服務嗎?

我們個人在開發一些前後端分離項目的時候,經常會遇到這類問題,前端開發者會問,我沒有接口怎麼辦?後端開發者會問,我寫的接口要怎麼測試呢?但是還會有這種情況,如果你是一個個人開發者,你既要寫前端,又要寫後端,但是如果你想檢查自己前端的網絡請求後端是否能接收到呢? 等等,小朋友你是否有很多問號?

以下博主我在學習的過程中,遇到過的 搭建 API 的方式,現在整理出來,供大家學習使用

API 服務 (個人理解)

簡答來說,用於一般後端語言 (c++,Python,java)等語言通過網絡編程,或者使用現成的一些 web 框架來搭建一個 web 服務器,這個web 服務器,具有監聽路由的功能,通過對指定路由監聽來自客戶端的請求,接收參數,並處理,然後將處理結果響應給客戶端的過程

一、Python Flask 編寫簡單的 API

說實話 Python Flask 是最簡單的方式搭建一個簡易 API 了,僅需要 5 行代碼就可以搭建一個能跑起來的服務器,但是僅僅能作測試使用,如果要放到生產環境中,我們就得使用更高性能的服務器,比如 Nginx 來反向代理 Flask 的所有請求

1.1 搭建 Python Flask 環境

  1. 安裝 Python 環境
  2. 安裝 Flask 框架

在 Python 官網下載 Python 的安裝包:官網鏈接

網上有很多安裝的教程,只有一點要注意,記得加上環境變量即可。安裝好後,在命令控制檯輸入如下內容,能看到 Python 的版本信息,就說明你安裝成功了。
在這裏插入圖片描述

接下里就是通過 Python 自帶的包管理工具 pip ,安裝 Flask 框架:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple Flask ,我使用了清華的鏡像源,這樣我們就可以下載很快很快

1.2 編寫你的第一個 Flask 程序

創建一個 app.py 程序,把如下代碼複製粘貼進去

from flask import Flask

# 創建 Flask 實例,在 OOP 中這叫類的實例化
app = Flask(__name__)

# 編寫路由
@app.route("/")
def index(): # 編寫 視圖函數,用戶訪問的根路徑都會給 index 這個視圖函數
	return "Hello World"

# 運行實例,並設置端口爲 3000
app.run(port=3000)

然後運行
在這裏插入圖片描述
我們就可以在根頁面看到 Hello World 了
在這裏插入圖片描述

1.3 Flask 進階系列

當你運行了第一個 Flask 程序,那麼恭喜你,你已經會使用 Flask 搭建一個簡易的 Web 應用了。但是作爲前後端交互,一些 get 請求帶參處理,post 請求參數處理, JSON 數據傳輸等等,我們就要學習如下的內容

  1. Flask 動態路由:看第一部分路由的內容
  2. HTTP 請求基本原理,http 響應狀態碼,自行百度~
  3. 自定義響應 make_response
  4. Flask 的 request 包的參數傳遞
  5. jsonfiy 基本使用,Flask 提供的 json 數據封裝的 內置函數
  6. 跨域問題解決
  7. 遇到問題在網上搜一搜,可能你遇到的問題也有人遇到過,並且已經解決過了

request 參數常見(來自某位大佬的總結,找不到出處了 emmm)

from flask import request

request.method: 獲取請求方法

request.json

request.json.get("json_key"):獲取json數據 **較常用      

request.args.get('name') :獲取get請求參數   

request.form.get('name') :獲取POST請求參數

request.form.getlist('name_list'):獲取POST請求參數列表(多個)

request.values.get('age') :獲取GET和POST請求攜帶的所有參數(GET/POST通用)

request.cookies.get('name'):獲取cookies信息

request.headers.get('Host'):獲取請求頭相關信息

request.path:獲取用戶訪問的url地址,例如(//login// index/);

request.full_path:獲取用戶訪問的完整url地址+參數 例如(/login/?age=18)

request.script_root: 抱歉,暫未理解其含義;

request.url:獲取訪問url地址,例如http://127.0.0.1:5000/?age=18;

request.base_url:獲取訪問url地址,例如 http://127.0.0.1:5000/;

request.url_root

request.host_url

request.host:獲取主機地址

request.files:獲取用戶上傳的文件

跨域問題解決

# 解決跨域問題
@app.after_request
def cors(environ):
    environ.headers['Access-Control-Allow-Origin']='*'
    environ.headers['Access-Control-Allow-Method']='*'
    environ.headers['Access-Control-Allow-Headers']='x-requested-with,content-type'
    return environ

二、Java Web 編寫簡單的 API

2.1 搭建環境

前提你是你有 Java 基礎,並且已經學習到了 Java EE 階段

  1. 安裝 jdk 1.8 版本
  2. jre 可以選擇性安裝,安裝 JDK 會自動安裝 jre
  3. 一個合適的開發工具:idea,eclipse web 版本
  4. maven 工具的基本使用(選)

這些 Java 開發者們應該都會8,我就不解釋了

2.2 搭建一個 Java EE 項目

Java EE 的核心處理流程

  1. java EE 的核心無非就是 servlet,listener,filter,jsp(就是servlet)
  2. 在 JavaEE 中,我們在前端使用 ajax,或者 form 表單提交,a 標籤跳轉,js (window.location.href) 、jsp 自帶的 請求轉發,重定向等頁面跳轉方式直接對後端的 Servlet 發送請求。
  3. 前端發送的請求用 Servlet 進行接收,Servlet 根據請求方式,與 數據庫實現增刪改查的操作,然後聽過 printWriter 以 JSON 字符串 或者 普通字符串 返回給前端,或者請求轉發,重定向等方式,用 servlet 四大域存儲數據,然後返回到前端頁面

先給大家分享幾個我在學習 Java EE 用到的 ajax 技術

原生 ajax 實現 (這個調試花了我好久時間)
原生 ajax + Java EE 實現用戶驗證功能
原生 ajax + Java EE 實現二級菜單聯動

Jquery ajax api實現 (推薦)
Jquery API 實現 ajax + Java EE

近期在學習 前端後端交互的知識,後續會繼續分享 基於 Promise 、 fetch、axios (第三方庫) 等網絡請求的講解

三、Java SpringBoot 編寫簡單的 API

當你經過了 Java EE 階段,就進入到了 Java Spring 全家桶的學習階段,當然你用 SpringBoot 來做更簡單,用 Spring MVC 來做也是完全沒問題的,但是你要寫 前端控制器,web.xml 配置,springmvc.xml 等配置

3.1 搭建一個 SpringBoot 環境

在 idea 中快速構建一個 SpringBoot 項目
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
這樣我們選擇一個目錄,等到 idea 自動配置好就可以了
在這裏插入圖片描述

3.2 編寫 controller

創建一個 controller 包,目錄必須在 DemoApplication 之下,因爲 SpringBoot 會掃描其子包,如果不這樣做,就會報錯

package com.example.controller;

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

@RestController // 相當於 springmvc 中的 controller + RequestBody
public class FirstController {

    @RequestMapping("/") // 請求路徑爲根路徑
    public String index() {
        return "Hi, 你好";
    }

    @RequestMapping("/v1")
    public String myPage() {
        return "Hello World";
    }
}

我們編寫好了兩個方法,然後 SpringBoot 啓動
在這裏插入圖片描述
可以看到字符串正常響應了
在這裏插入圖片描述
在這裏插入圖片描述

四、Node 之 Express 搭建簡易 API

學習雲服務器環境搭建之餘,稍微瞭解過 Node.js 的 web 框架 Express 的基本使用,也很簡單

4.1 你需要安裝 node.js 環境

安裝方式自行百度 ~
下載鏈接
一般下載 .msi 文件,這個比較小,它是一個簡單的下載器,點開它,就會默認在後檯安安靜靜的下載

下載好後查看這兩個命令,一般 node 會自帶 npm,沒有的話自行百度,我的node版本是 8.9.0 是因爲微信小程序要求是這個版本,總之版本不要太低
在這裏插入圖片描述

4.2 搭建你的第一個 Express 應用

express 官方文檔搭建教程

  1. 初始化 npm 環境:npm init,會讓你創建一個 index.js 文件
  2. 安裝 express 環境:npm install express --no-save 不添加到全局的依賴環境,僅本次安裝有效
  3. 編寫 index.js 文件
const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => res.send('Hello World!'))

app.listen(port, () => console.log(`Example app listening on port ${port}!`))
  1. 在命令提示符下,使用 node index.js 就可以看到效果了

注意路徑和端口,別錯就好了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章