java、restful api開發(fā)用的多不多?
網(wǎng)友解答: RESTful API作為一套當(dāng)下非常流行的,面向資源的API設(shè)計(jì)理論,優(yōu)點(diǎn)甚多,主要具有以下幾點(diǎn):透明性。能夠?qū)①Y源暴露出來,每個(gè)資源都有一個(gè)地址。資源本身都是方法調(diào)用的目
RESTful API作為一套當(dāng)下非常流行的,面向資源的API設(shè)計(jì)理論,優(yōu)點(diǎn)甚多,主要具有以下幾點(diǎn):
透明性。能夠?qū)①Y源暴露出來,每個(gè)資源都有一個(gè)地址。資源本身都是方法調(diào)用的目標(biāo),方法列表對(duì)所有資源都是一樣的。
充分利用HTTP協(xié)議的語義。以往的webservice主要利用了get和post方法,并沒有具體區(qū)分HTTP設(shè)計(jì)之初的意圖。而REST充分利用了這一點(diǎn),get方式用來獲取資源,post方式用來更新資源,put方式用來新建資源,而delete資源用來刪除資源。此外,還有header和options的請(qǐng)求方式。
無狀態(tài)。并不需要考慮上下文,可以作為中間件,獨(dú)立于業(yè)務(wù)。
因?yàn)镽ESTful架構(gòu)的簡單輕便,已經(jīng)成為webservice的替代品,Java也推出了JAX-WS的替代品JAX-RS。此外,近幾年,隨著互聯(lián)網(wǎng)應(yīng)用的不斷發(fā)展,很多原先龐大的Web系統(tǒng)已經(jīng)轉(zhuǎn)成基于Spring Boot和Spring Cloud設(shè)計(jì)的RESTful API架構(gòu)了。
所以JAVA上,RESTful API開發(fā)還是很多的,有興趣的可以學(xué)習(xí)一下,必然受益匪淺。
網(wǎng)友解答:更新:剛才在評(píng)論說回答的不對(duì)題,題主問的是RESTful api在Java中的應(yīng)用場(chǎng)景多不多,我就權(quán)當(dāng)修正一下答案吧。回答是:多也不多。
為什么這樣說,近2年參與了大大小小快6個(gè)項(xiàng)目了,都是前后端分離的架構(gòu)。但無一例外,所有的API都沒有采用RESTful API的架構(gòu),而是使用更為語義化的API命名,相對(duì)于使用GET,POST,PUT,DELETE,PATCH等HTTP動(dòng)詞 + 資源路徑來說,我更傾向于使用比較語義化的API命名方式。
舉個(gè)栗子,如果使用RESTful的API方式,展示所有動(dòng)物園的API地址可能為
GET /zoos:列出所有動(dòng)物園 POST /zoos:新建一個(gè)動(dòng)物園僅僅通過API地址根本無法知道是要列表還是新建操作,還不如直接改成語義化的API鏈接,例如:
zoos_list 列出所有動(dòng)物園zoos_add 新建一個(gè)動(dòng)物園語義化的API設(shè)計(jì),至少你在團(tuán)隊(duì)合作的時(shí)候,別人一眼就能看出這個(gè)API是做什么的,不像RESTful 的設(shè)計(jì)模式,還要結(jié)合HTTP動(dòng)詞來使用,不甚理解為什么要這么做。雖然精簡了API條數(shù),但是反而更抽象了。
當(dāng)然,不能否認(rèn)RESTful API的設(shè)計(jì)理念,我也是從阮一峰大神的 這篇文章(http://www.ruanyifeng.com/blog/2014/05/restful_api.html) 學(xué)到的API設(shè)計(jì)知識(shí),如何使用,就見仁見智吧。
以下為原回答:
我覺得在現(xiàn)在全棧開發(fā),前后端分離,微服務(wù)架構(gòu)的趨勢(shì)下,用什么語言來做服務(wù)端,生成restful的api,完全取決于團(tuán)隊(duì)的技術(shù)棧結(jié)構(gòu),項(xiàng)目規(guī)模以及客戶的要求。
我所在的開發(fā)團(tuán)隊(duì)前端用的Vue2,后端服務(wù)端使用都是NodeJS,完全可以做到前后端并行開發(fā),不用Java主要是因?yàn)閳F(tuán)隊(duì)成員對(duì)此沒有NodeJS熟悉,開發(fā)起來還沒有NodeJS速度快,同樣的功能,換成Java的話可能配置環(huán)境,搭建開發(fā)框架就要折騰半天。
當(dāng)然,在企業(yè)級(jí)開發(fā)上,Java語言占有體量上的優(yōu)勢(shì),從各大招聘網(wǎng)站招聘的崗位數(shù)量上就能看出來Java在各大公司的火熱程度,但是對(duì)于中小型企業(yè)公司來說,也許Java會(huì)顯得過于重了,沒有一個(gè)好的架構(gòu)師,或者Java熟手,需要快速開發(fā)迭代一個(gè)產(chǎn)品的話,使用PHP,NodeJS未嘗不是一個(gè)更好的選擇。
所以說,用什么開發(fā)語言做服務(wù)端開發(fā)都無所謂,不要糾結(jié)用什么語言來實(shí)現(xiàn)產(chǎn)品功能,只要你用的順手,不管黑貓白貓,抓住老鼠就是好貓。