為了賬號安全,請及時綁定郵箱和手機立即綁定

Java Web基礎入門,Springboot入門(1)

2017.12.07 19:36 4625瀏覽

前言

語言都是相通的,只要搞清楚概念后就可以編寫代碼了。而概念是需要學習成本的。

本文首發于博客園-Ryan Miao. 由于限制2000字,只能分多篇。

Java基礎

不用看《編程思想》,基礎語法看 http://www.runoob.com/java/java-basic-syntax.html 就可以了,入門后想干啥干啥,如果感興趣,如果有時間。

Web

這里講的web是指提供API(Application Programming Interface)的能力。那么什么是API?

API是指server端和client端進行資源交互的通道。Client可以通過API來獲取和修改server端的資源(Resource). 實際上,API差不多就是URL的代稱,現階段,推薦采用RESTfull API.

RESTfull API

API表現方式就是URL(Uniform Resoure Locator)。RESTfull API是一個概念,規定了應該以什么樣的結構去構建API,即應該如何拼接URL。先來看看URL是什么樣子的。

資源(Resources)
path中的groupsusers都是資源的名稱,通過參數來確定資源的位置。

行為/操作(Method)
我們通過約定的Http Method來表示對Resource的操作。

常用的HTTP動詞有下面五個(括號里是對應的SQL命令)。

GET(SELECT):從服務器取出資源(一項或多項)。
POST(CREATE):在服務器新建一個資源。
PUT(UPDATE):在服務器更新資源(客戶端提供改變后的完整資源)。
PATCH(UPDATE):在服務器更新資源(客戶端提供改變的屬性)。
DELETE(DELETE):從服務器刪除資源。

還有兩個不常用的HTTP動詞。

HEAD:獲取資源的元數據。
OPTIONS:獲取信息,關于資源的哪些屬性是客戶端可以改變的。

示例:

GET /zoos:列出所有動物園
POST /zoos:新建一個動物園
GET /zoos/ID:獲取某個指定動物園的信息
PUT /zoos/ID:更新某個指定動物園的信息(提供該動物園的全部信息)
PATCH /zoos/ID:更新某個指定動物園的信息(提供該動物園的部分信息)
DELETE /zoos/ID:刪除某個動物園
GET /zoos/ID/animals:列出某個指定動物園的所有動物
DELETE /zoos/ID/animals/ID:刪除某個指定動物園的指定動物

當path的組成仍舊無法準確定位資源的時候,可以通過queryParam來進一步縮小范圍。

?limit=10:指定返回記錄的數量
?offset=10:指定返回記錄的開始位置。
?page=2&per_page=100:指定第幾頁,以及每頁的記錄數。
?sortby=name&order=asc:指定返回結果按照哪個屬性排序,以及排序順序。
?animal_type_id=1:指定篩選條件

更多關于構建RESTfull API的信息,參閱https://codeplanet.io/principles-good-restful-api-design/

ContentType

現在的接口都是基于JSON傳輸的,什么是JSON(JavaScript Object Notation)?

一個基于JSON的API的response應該包含以下header

Content-Type:application/json; charset=utf-8
NodeJS Web

安裝NodeJS

然后,創建app.js, npm install express --save, node app.js, 訪問localhost:3000/localhost:3000/json

// 這句的意思就是引入 `express` 模塊,并將它賦予 `express` 這個變量等待使用。
var express = require('express');
// 調用 express 實例,它是一個函數,不帶參數調用時,會返回一個 express 實例,將這個變量賦予 app 變量。
var app = express();

// app 本身有很多方法,其中包括最常用的 get、post、put/patch、delete,在這里我們調用其中的 get 方法,為我們的 `/` 路徑指定一個 handler 函數。
// 這個 handler 函數會接收 req 和 res 兩個對象,他們分別是請求的 request 和 response。
// request 中包含了瀏覽器傳來的各種信息,比如 query 啊,body 啊,headers 啊之類的,都可以通過 req 對象訪問到。
// res 對象,我們一般不從里面取信息,而是通過它來定制我們向瀏覽器輸出的信息,比如 header 信息,比如想要向瀏覽器輸出的內容。這里我們調用了它的 #send 方法,向瀏覽器輸出一個字符串。
app.get('/', function (req, res) {
  res.send('Hello World');
});

app.get('/json', function (req, res) {
  var rs = {};
  rs.id=1;
  rs.name = "Ryan";

  res.send(rs);
});

// 定義好我們 app 的行為之后,讓它監聽本地的 3000 端口。這里的第二個函數是個回調函數,會在 listen 動作成功后執行,我們這里執行了一個命令行輸出操作,告訴我們監聽動作已完成。
app.listen(3000, function () {
  console.log('app is listening at port 3000');
});

下一篇開始Java Web.

點擊查看更多內容

本文原創發布于慕課網 ,轉載請注明出處,謝謝合作

9人點贊

若覺得本文不錯,就分享一下吧!

評論

相關文章推薦

正在加載中
意見反饋 幫助中心 APP下載
官方微信

舉報

0/150
提交
取消
lpl竞猜