国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

RESTful 和 GraphQL 怎么選?看完這篇文章,你就明白了

共 7055字,需瀏覽 15分鐘

 ·

2021-07-05 04:08

本文作者:IT研究僧大師兄   

鏈接:toutiao.com/a6833818331884028419

REST作為一種現(xiàn)代網(wǎng)絡(luò)應(yīng)用非常流行的軟件架構(gòu)風(fēng)格,自從Roy Fielding博士在2000年他的博士論文中提出來到現(xiàn)在已經(jīng)有了20年的歷史。它的簡單易用性,可擴展性,伸縮性受到廣大Web開發(fā)者的喜愛。

REST 的 API 配合JSON格式的數(shù)據(jù)交換,使得前后端分離、數(shù)據(jù)交互變得非常容易,而且也已經(jīng)成為了目前Web領(lǐng)域最受歡迎的軟件架構(gòu)設(shè)計模式。

但隨著REST API的流行和發(fā)展,它的缺點也暴露了出來:

  • 「濫用REST接口」,導(dǎo)致大量相似度很高(具有重復(fù)性)的API越來越冗余。
  • 「對于前端而言」:REST API粒度較粗,難以一次性符合前端的數(shù)據(jù)要求,前端需要分多次請求接口數(shù)據(jù)。增加了前端人員的工作量。
  • 對于后端而言:「前端需要的數(shù)據(jù)往往在不同的地方具有相似性,但卻又不同」,比如針對同樣的用戶信息,有的地方只需要用戶簡要信息(比如頭像、昵稱),有些地方需要詳細的信息,這就需要開發(fā)不同的接口來滿足這些需求。當這樣的相似但又不同的地方多的時候,就需要開發(fā)更多的接口來滿足前端的需要。增加了后端開發(fā)人員的工作量和重復(fù)度。那我們來分析一下,當前端需求變化,涉及到改動舊需求時,會有以下這些情況:

0.1、做加法:

產(chǎn)品需求增加,頁面需要增加功能,數(shù)據(jù)也就相應(yīng)的要增加顯示,那么REST接口也需要做增加,這種無可厚非。

0.2、做減法:

產(chǎn)品需求減少,頁面需要減少功能,或者減少某些信息顯示,那么數(shù)據(jù)就要做減法。

「一種通常懶惰的做法是,前端不與后端溝通,僅在前端對數(shù)據(jù)選擇性顯示?!?/strong>

因為后端接口能夠滿足數(shù)據(jù)需要,僅僅是在做顯示的時候?qū)?shù)據(jù)進行了選擇性顯示,但接口的數(shù)據(jù)是存在冗余的,這種情況一個是存在數(shù)據(jù)泄露風(fēng)險,另外就是數(shù)據(jù)量過大時造成網(wǎng)絡(luò)流量過大,頁面加載緩慢,用戶流量費白白消耗,用戶體驗就會下降。

「另外一種做法就是告知后端,要么開發(fā)新的接口,要么,修改舊接口,刪掉冗余字段?!?/strong>

但一般來說,開發(fā)新接口往往是后端開發(fā)人員會選擇的方案,因為這個方案對現(xiàn)有系統(tǒng)的影響最低,不會有額外的風(fēng)險。

修改舊接口刪除冗余數(shù)據(jù)的方案往往開發(fā)人員不會選擇,這是為什么呢?

這就涉及到了系統(tǒng)的穩(wěn)定性問題了,舊接口往往不止是一個地方在用,很有可能很多頁面、設(shè)置不同客戶端、不同服務(wù)都調(diào)用了這個接口獲取數(shù)據(jù),不做詳細的調(diào)查,是不可能知道到底舊接口被調(diào)用了多少次,一旦改動舊接口,涉及范圍可能非常大,往往會引起其他地方出現(xiàn)崩潰。改動舊接口成本太高,所以往往不會被采取。

0.3、同時做加減法:

既有加法,又有減法,其實這種就跟新需求沒啥區(qū)別,前端需要重做頁面,后端需要新寫接口滿足前端需要,但是舊接口還是不能輕舉妄動(除非確定只有這一處調(diào)用才可以刪除)。

往往這個時候,其實用到的數(shù)據(jù)大多都是來自于同一個DO或者DTO,不過是在REST接口組裝數(shù)據(jù)時,用不同的VO來封裝不同字段,或者,使用同樣的VO,組裝數(shù)據(jù)時做刪減。

看到這些問題是不是覺得令人頭大?

所以「需求頻繁改動是萬惡之源」,當產(chǎn)品小哥哥改動需求時,程序員小哥哥可能正提著鐵鍬趕來......

那么有沒有一種方案或者框架,可以使得在用到同一個領(lǐng)域模型(DO或者DTO)的數(shù)據(jù)時,前端對于這個模型的數(shù)據(jù)字段需求的改動,后端可以根據(jù)前端的改動和需要,自動適配,自動組裝需要的字段,返回給前端呢?如果能這樣做的話,那么后端程序猿小哥可能要開心死了,前端妹子也不用那么苦口婆心地勸說后端小哥哥了。

所以 GraphQL 隆重出世了!那么問題來了!

壹、What is GraphQL

Part 1 What is GraphQL

1.1、GraphQL 是什么

  • GraphQL是一種新的API標準,它提供了一種比REST更有效、更強大和更靈活的替代方案。
  • 它是由Facebook開發(fā)并開源的,現(xiàn)在由來自世界各地的公司和個人組成的大型社區(qū)維護。
  • GraphQL本質(zhì)上是一種基于api的查詢語言,現(xiàn)在大多數(shù)應(yīng)用程序都需要從服務(wù)器中獲取數(shù)據(jù),這些數(shù)據(jù)存儲可能存儲在數(shù)據(jù)庫中,API的職責(zé)是提供與應(yīng)用程序需求相匹配的存儲數(shù)據(jù)的接口。
  • 它是數(shù)據(jù)庫無關(guān)的,而且可以在使用API的任何環(huán)境中有效使用,我們可以理解為GraphQL是基于API之上的一層封裝,目的是為了更好,更靈活的適用于業(yè)務(wù)的需求變化。

「簡單的來說:」

  • 是強大的 API 查詢語言
  • 是客服端和服務(wù)器進行通訊的中介
  • 比 REST API 更加靈活

它的工作模式是這樣子的:

1.2、GraphQL 對比 REST API 有什么好處?

R「EST API 的接口靈活性差、接口操作流程繁瑣,GraphQL 的聲明式數(shù)據(jù)獲取,使得接口數(shù)據(jù)精確返回,數(shù)據(jù)查詢流程簡潔,照顧了客戶端的靈活性?!?/strong>

「客戶端拓展功能時要不斷編寫新接口(依賴于服務(wù)端),GraphQL 中一個服務(wù)僅暴露一個 GraphQL 層,消除了服務(wù)器對數(shù)據(jù)格式的硬性規(guī)定,客戶端按需請求數(shù)據(jù),可進行單獨維護和改進?!?/strong>

「REST API 基于HTTP協(xié)議,不能靈活選擇網(wǎng)絡(luò)協(xié)議,而傳輸層無關(guān)、數(shù)據(jù)庫技術(shù)無關(guān)使得 GraphQL 有更加靈活的技術(shù)棧選擇,能夠?qū)崿F(xiàn)在網(wǎng)絡(luò)協(xié)議層面優(yōu)化應(yīng)用。」

舉個經(jīng)典例子

前端向后端請求一個book對象的數(shù)據(jù)及其作者信息。

我用動圖來分別演示下REST和GraphQL是怎么樣的一個過程。

先看REST API的做法:

REST API獲取數(shù)據(jù)

再來看GraphQL是怎么做的:

GraphQL獲取數(shù)據(jù)

可以看出其中的區(qū)別:

與REST多個endpoint不同,每一個的 GraphQL 服務(wù)其實對外只提供了一個用于調(diào)用內(nèi)部接口的端點,所有的請求都訪問這個暴露出來的唯一端點。

Endpoints對比
REST API's Endpoints

GraphQL 實際上將多個 HTTP 請求聚合成了一個請求,將多個 restful 請求的資源變成了一個從根資源 POST 訪問其他資源的 Comment 和 Author 的圖,多個請求變成了一個請求的不同字段,從原有的分散式請求變成了集中式的請求,因此GraphQL又可以被看成是圖數(shù)據(jù)庫的形式。

圖數(shù)據(jù)庫模式的數(shù)據(jù)查詢

那我們已經(jīng)能看到GraphQL的先進性,接下來看看它是怎么做的。

1.3、GraphQL 思考模式

使用GraphQL接口設(shè)計獲取數(shù)據(jù)需要三步:

GraphQL獲取數(shù)據(jù)三步驟
  • 1、首先要設(shè)計數(shù)據(jù)模型,用來描述數(shù)據(jù)對象,它的作用可以看做是VO,用于告知GraphQL如何來描述定義的數(shù)據(jù),為下一步查詢返回做準備;
  • 2、前端使用模式查詢語言(Schema)來描述需要請求的數(shù)據(jù)對象類型和具體需要的字段(稱之為聲明式數(shù)據(jù)獲?。?;
  • 3、后端GraphQL通過前端傳過來的請求,根據(jù)需要,自動組裝數(shù)據(jù)字段,返回給前端。GraphQL的這種思考模式是不是完美解決了之前遇到的問題呢?!

「總結(jié)它的好處」

在它的設(shè)計思想中,GraphQL 以圖的形式將整個 Web 服務(wù)中的資源展示出來,客戶端可以按照其需求自行調(diào)用,類似添加字段的需求其實就不再需要后端多次修改了。

創(chuàng)建GraphQL服務(wù)器的最終目標是:允許查詢通過圖和節(jié)點的形式去獲取數(shù)據(jù)。

1.4、GraphQL執(zhí)行邏輯

有人會問:

  • 使用了GraphQL就要完全拋棄REST了嗎?
  • GraphQL需要直接對接數(shù)據(jù)庫嗎?
  • 使用GraphQL需要對現(xiàn)有的后端服務(wù)進行大刀闊斧的修改嗎?

答案是:NO!不需要!

它完全可以以一種不侵入的方式來部署,將它作為前后端的中間服務(wù),也就是,現(xiàn)在開始逐漸流行的 「前端 —— 中端 —— 后端」 的三層結(jié)構(gòu)模式來部署!

那就來看一下這樣的部署模式圖:

GraphQL執(zhí)行邏輯

也就是說,完全可以搭建一個GraphQL服務(wù)器,專門來處理前端請求,并處理后端服務(wù)獲取的數(shù)據(jù),重新進行組裝、篩選、過濾,將完美符合前端需要的數(shù)據(jù)返回。歡迎關(guān)注公眾號"Java學(xué)習(xí)之道",查看更多干貨!

新的開發(fā)需求可以直接就使用GraphQL服務(wù)來獲取數(shù)據(jù)了,以前已經(jīng)上線的功能無需改動,還是使用原有請求調(diào)用REST接口的方式,最低程度的降低更換GraphQL帶來的技術(shù)成本問題!

如果沒有那么多成本來支撐改造,那么就不需要改造!

只有當原有需求發(fā)生變化,需要對原功能進行修改時,就可以換成GraphQL了。

1.5、GraphQL應(yīng)用的基本架構(gòu)

下圖是一個 GraphQL 應(yīng)用的基本架構(gòu),其中客戶端只和 GraphQL 層進行 API 交互,而 GraphQL 層再往后接入各種數(shù)據(jù)源。這樣一來,只要是數(shù)據(jù)源有的數(shù)據(jù), GraphQL 層都可以讓客戶端按需獲取,不必專門再去定接口了。

GraphQL應(yīng)用基本架構(gòu)

「一個GraphQL服務(wù)僅暴露一個 GraphQL Endpoint,可以按照業(yè)務(wù)來進行區(qū)分,部署多個GraphQL服務(wù),分管不同的業(yè)務(wù)數(shù)據(jù),這樣就可以避免單服務(wù)器壓力過大的問題了。」

1.6、GraphQL特點總結(jié)

  • 「聲明式數(shù)據(jù)獲?。梢詫PI進行查詢):」 聲明式的數(shù)據(jù)查詢帶來了接口的精確返回,服務(wù)器會按數(shù)據(jù)查詢的格式返回同樣結(jié)構(gòu)的 JSON 數(shù)據(jù)、真正照顧了客戶端的靈活性。
  • 「一個微服務(wù)僅暴露一個 GraphQL 層」:一個微服務(wù)只需暴露一個GraphQL endpoint,客戶端請求相應(yīng)數(shù)據(jù)只通過該端點按需獲取,不需要再額外定義其他接口。
  • 「傳輸層無關(guān)、數(shù)據(jù)庫技術(shù)無關(guān)」:帶來了更靈活的技術(shù)棧選擇,比如我們可以選擇對移動設(shè)備友好的協(xié)議,將網(wǎng)絡(luò)傳輸數(shù)據(jù)量最小化,實現(xiàn)在網(wǎng)絡(luò)協(xié)議層面優(yōu)化應(yīng)用。

貳、Schema & Type

Part 2 Schema & Type

GraphQL支持的數(shù)據(jù)操作 GraphQL對數(shù)據(jù)支持的操作有:

  • 「查詢(Query)」:獲取數(shù)據(jù)的基本查詢。
  • 「變更(Mutation)」:支持對數(shù)據(jù)的增刪改等操作。
  • 「訂閱(Subscription)」:用于監(jiān)聽數(shù)據(jù)變動、并靠websocket等協(xié)議推送變動的消息給對方。
GraphQL支持的操作

2.1、GraphQL的核心概念:圖表模式(Schema)

要想要設(shè)計GraphQL的數(shù)據(jù)模型,用來描述你的業(yè)務(wù)數(shù)據(jù),那么就必須要有一套Schema語法來做支撐。

想要描述數(shù)據(jù),就必須離不開數(shù)據(jù)類型的定義。所以GraphQL設(shè)計了一套Schema模式(可以理解為語法),其中最重要的就是數(shù)據(jù)類型的定義和支持。

那么類型(Type)就是模式(Schema)最核心的東西了。

「什么是類型?」

  • 對于數(shù)據(jù)模型的抽象是通過類型(Type)來描述的,每一個類型有若干字段(Field)組成,每個字段又分別指向某個類型(Type)。這很像Java、C#中的類(Class)。
  • GraphQL的Type簡單可以分為兩種,一種叫做Scalar Type(標量類型),另一種叫做Object Type(對象類型)。

那么就分別來介紹下兩種類型。

2.2、標量類型(Scalar Type)

標量是GraphQL類型系統(tǒng)中最小的顆粒。類似于Java、C#中的基本類型。

其中內(nèi)建標量主要有:

  • String
  • Int
  • Float
  • Boolean
  • Enum
  • ID
Scalar Type

上面的類型僅僅是GraphQL默認內(nèi)置的類型,當然,為了保證最大的靈活性,GraphQL還可以很靈活的自行創(chuàng)建標量類型。

2.3、對象類型(Object Type)

僅有標量類型是不能滿足復(fù)雜抽象數(shù)據(jù)模型的需要,這時候我們可以使用對象類型。

通過對象模型來構(gòu)建GraphQL中關(guān)于一個數(shù)據(jù)模型的形狀,同時還可以聲明各個模型之間的內(nèi)在關(guān)聯(lián)(一對多、一對一或多對多)。

對象類型的定義可以參考下圖:

對象模型引入關(guān)聯(lián)關(guān)系

是不是很方便呢?我們可以像設(shè)計類圖一樣來設(shè)計GraphQL的對象模型。

2.4、類型修飾符(Type Modifier)

那么,類型系統(tǒng)僅僅只有類型定義是不夠的,我們還需要對類型進行更廣泛性的描述。

類型修飾符就是用來修飾類型,以達到額外的數(shù)據(jù)類型要求控制。

比如:

  • 列表:[Type]
  • 非空:Type!
  • 列表非空:[Type]!
  • 非空列表,列表內(nèi)容類型非空:[Type!]!

在描述數(shù)據(jù)模型(模式Schema)時,就可以對字段施加限制條件。

例如定義了一個名為User的對象類型,并對其字段進行定義和施加限制條件:

User字段控制

那么,返回數(shù)據(jù)時,像下面這種情況就是不允許的:

錯誤的表示

Graphql會根據(jù)Schema Type來自動返回正確的數(shù)據(jù):

正確的表示

2.5、其他類型

除了上面的,Graphql還有一些其他類型來更好的引入面向?qū)ο蟮脑O(shè)計思想:

接口類型(Interfaces)

其他對象類型實現(xiàn)接口必須包含接口所有的字段,并具有相同的類型修飾符,才算實現(xiàn)接口。

比如定義了一個接口類型:

那么就可以實現(xiàn)該接口:

聯(lián)合類型(Union Types)

聯(lián)合類型和接口十分相似,但是它并不指定類型之間的任何共同字段。幾個對象類型共用一個聯(lián)合類型。

輸入類型(Input Types)

更新數(shù)據(jù)時有用,與常規(guī)對象只有關(guān)鍵字修飾不一樣,常規(guī)對象時 type 修飾,輸入類型是 input 修飾。比如定義了一個輸入類型:

前端發(fā)送變更請求時就可以使用(通過參數(shù)來指定輸入的類型):

所以,這樣面向?qū)ο蟮脑O(shè)計方式,真的對后端開發(fā)人員特別友好!而且前端MVVM框架流行以來,面向?qū)ο蟮脑O(shè)計思想也越來越流行,前端使用Graphql也會得心應(yīng)手。

叁、GraphQL 技術(shù)接入架構(gòu)

Part 3 GraphQL技術(shù)接入架構(gòu)

那么,該怎么設(shè)計來接入我們現(xiàn)有的系統(tǒng)中呢?

1、「將Graphql服務(wù)直連數(shù)據(jù)庫的方式」:最簡潔的配置,直接操作數(shù)據(jù)庫能減少中間環(huán)節(jié)的性能消耗。

直連數(shù)據(jù)庫的接入

2、「集成現(xiàn)有服務(wù)的 GraphQL 層」:這種配置適合于舊服務(wù)的改造,尤其是在涉及第三方服務(wù)時、依然可以通過原有接口進行交互。

![集成現(xiàn)有服務(wù)的GraphQL層

](http://p6-tt.byteimg.com/large/pgc-image/87212a85e6aa4773b325c004ad4a0ac0?from=pc)

3、「直連數(shù)據(jù)庫和集成服務(wù)的混合模式」:前兩種方式的混合。

混合接入方式

可以說是非常靈活了!你都不用擔(dān)心會給你帶來任何的麻煩。

肆、GraphQL 開源生態(tài)圈

4.1、服務(wù)端實現(xiàn)

在服務(wù)端, GraphQL 服務(wù)器可用任何可構(gòu)建 Web 服務(wù)器的語言實現(xiàn)。

有以下語言的實現(xiàn)供參考:

  • C# / .NET
  • Clojure
  • Elixir
  • Erlang
  • Go
  • Groovy
  • Java
  • JavaScript
  • Julia
  • Kotlin
  • Perl
  • PHP
  • Python
  • R
  • Ruby
  • Rust
  • Scala
  • Swift

種類繁多,幾乎流行的語言都有支持。

4.2、客戶端實現(xiàn)

在客戶端,Graphql Client目前有下面的語言支持:

  • C# / .NET
  • Clojurescript
  • Elm
  • Flutter
  • Go
  • Java / Android
  • JavaScript
  • Julia
  • Swift / Objective-C iOS
  • Python
  • R 覆蓋了眾多客戶端設(shè)計語言,而其他語言的支持也在推進中。

4.3、Graphql的一些服務(wù)

整理了下目前比較流行的服務(wù)框架:

  • 「Apollo Engine」:一個用于監(jiān)視 GraphQL 后端的性能和使用的服務(wù)。
  • 「Graphcool (github)」: 一個 BaaS(后端即服務(wù)),它為你的應(yīng)用程序提供了一個 GraphQL 后端,且具有用于管理數(shù)據(jù)庫和存儲數(shù)據(jù)的強大的 web ui。
  • 「Tipe (github)」: 一個 SaaS(軟件即服務(wù))內(nèi)容管理系統(tǒng),允許你使用強大的編輯工具創(chuàng)建你 的內(nèi)容,并通過 GraphQL 或 REST API 從任何地方訪問它。
  • 「AWS AppSync」:完全托管的 GraphQL 服務(wù),包含實時訂閱、離線編程和同步、企業(yè)級安全特性以及細粒度的授權(quán)控制。
  • 「Hasura」:一個 BaaS(后端即服務(wù)),允許你在 Postgres 上創(chuàng)建數(shù)據(jù)表、定義權(quán)限并使用 GraphQL 接口查詢和操作。

Graphql的一些工具

  • 「graphiql (npm)」: 一個交互式的運行于瀏覽器中的 GraphQL IDE。
  • 「Graphql Language Service」: 一個用于構(gòu)建 IDE 的 GraphQL 語言服務(wù)(診斷、自動完成等) 的接口。
  • 「quicktype (github)」: 在 TypeScript、Swift、golang、C#、C++ 等語言中為 GraphQL 查 詢生成類型。想要獲取更多關(guān)于Graphql的一些框架、工具,可以去awesome-graphql:一個神奇的社區(qū),維護一系列庫、資源等,地址是:https://github.com/chentsulin/awesome-graphql

想要學(xué)習(xí)更多Graphql的知識,可以去GraphQL.cn

好了,一個入門級的Graphql介紹篇就這樣完結(jié)了(盡管篇幅也很大哈哈)。

瀏覽 81
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 色资源在线观看| 日日爱爱| 免费a片在线观看| 丁香五月成人| 特黄AAAAAAAA片视频| 69精品免费视频| 婷婷国产精品| 久草在| 亚洲经典免费视频| 日韩一级一级一级| 国产一区二区三区18| 香蕉久久a毛片| 日韩AV中文字幕在线| 爱搞国产| 日本色网址| 四虎成人精品永久免费AV九九 | 99久久久久久久无码| 无码秘蜜桃一区二区| 夜夜操夜夜爽| 日韩在线综合| 北条麻妃无码精品AV| 激情五月婷婷五月| 中文字幕成人A片| 伊人久久香蕉网| 久久久久亚洲精品| 欧美老女人的逼| 亚洲精品A片| 败火老熟女ThePorn视频| 国产香蕉视频| 大香蕉伊人视频| 97人妻无码一区二区| 日韩免费在线播放| 成人亚洲A片V一区二区三区蜜月 | 亚洲成人视频在线| 国产精品一区二| 国产毛片在线视频| 熟女中文| 午夜天堂精品久久久久9| 男人的天堂网页| 欧美日韩成人网站| 二级黄色视频| 欧美一级日韩三级| 日韩欧美国产成人| 亚洲AV综合色区无码国产播放| 日韩美女免费性爱视频| 欧美无人区码suv| 91人妻成人精品一区二区| yw·163.爆乳尤物com| 欧美精品久久| 日韩| 欧美三级电影在线观看| 91在线无码精品秘入口三人| 大地99中文在线观看| 精品aaa| 影音先锋成人无码| 久久一二三四| 国产videos| 欧美后门菊门交3p、| 天天日天天干美女| 五月天婷婷网站| 操逼视频在线免费看| av无码不卡| 亚洲国产中文字幕在线播放| 北条麻妃免费视频| 少妇人妻一级A毛片| 国产午夜成人视频| 青青国产在线观看| 无码人妻丰满熟妇区17水蜜桃| 夜夜夜操操操| 男女av在线观看| 人妻体体内射精一区二区| 久久国产精品在线| 天天色图片| 久久成人在线视频| 91丨熟女露脸| 超碰毛片| 国产欧美综合一区| 欧美A片在线免费观看| 大香蕉操B| 中国毛片网站| 无码人妻精品一区二区三区温州| 亚洲aaaaaa| 欧洲精品在线免费观看| 操美女91| 青娱乐无码视频| 超碰1999| 一区电影网| 国产成人AV一区二区三区在线观看 | 午夜福利澳| 中文字幕巨肉乱码中文乱码| 日韩,变态,另类,中文,人妻| 91麻豆精品国产91久久久久久 | 在线观看视频免费无码| 炮友五月天| 亚洲黄色视频在线免费观看| 小黄片免费看| 狼色AV| jt33免费观看高清| 色综合999| 午夜综合在线| 日韩一级片免费观看| 家庭乱伦AV| 久青草资源福利视频| 国产在线视频一区二区| 91人人妻人人澡| 国产精品久久久久久久久久九秃 | AV网站免费观看| 黄色大片免费观看| 成人AV毛片| 激情综合五月天| 成人黄色电影在线观看| 成人精品无码| 丰臀肥逼高清视频电影播放| 婷婷开心色四房播播免费| 精品国产乱子伦一区二区三区,小小扐 | 国产亚洲午夜久久久成人电影| 最新97色黄色精品高清网站| 伊人操逼网| 亚洲国产精品自| 亚洲操逼AV| 中文资源在线观看| 91看片看婬黄大片女跟女| 久久精品视频一区| 亚洲日韩欧美一区二区天天天| 西西人体444rt高清大胆模特| 91人妻无码精品蜜桃| 91aaa在线观看| 成人视频免费网站| 黄色欧美视频| xiuxiuav| 国产精品色色色| 操比无码| 日韩理论在线| 一级Aa视频免费看| 91啪啪视频| 亚洲久久无码| 国产一级A片| 国产精品秘精东影业| 人人av在线| 秋霞欧美在线| 91久久人澡人妻人人做人人爽97| 欧美男人的天堂| 成人无码三级| 伊人色五月| 欧美日韩免费| 中国人妻HDbute熟睡| 亚洲国产中文字幕在线播放| 鸡巴操骚逼视频| 日韩在线视频一区二区三区| 亚洲成人精品在线| 大香蕉伊人综合| 亚洲视频免费在线观看| 欧美熟妇性爱视频| 国产无遮挡又黄又爽又色视频软件 | 国产熟女一区二区久久| AV电影在线观看| 大地二中文在线观看免费鲁大师| 二区无码| 亚洲AV五月天在线| WW免费视频| 国产一区二区不卡视频| 欧美在线一级片| 少妇搡BBBB搡BBB搡HD(| 丁香五月婷婷五月天| 色色777| 日韩AV高清| 大鸡巴在线| 福利一区二区视频网| 91成人在线观看学生和老师| 日本一级特黄电影| jizz免费视频| 99久免费视频| 五月丁香视频在线观看| 中文字幕一区二区二三区四区 | 黄色视频在线观| 人妻77777| 毛片黄色视频| 国产婷婷色一区二区三区| 在线视频第一页| 99久久国内精品成人免费| 亚洲俺去了| 九九五月天| 久久久久久久久久国产| 黄片免费视频| 成人视频91| 伊人色综合网| 日韩欧美中文字幕在线视频| 最近中文字幕| 中文字幕av久久波多野结| 日本高清中文字幕| 亚洲熟妇AV日韩熟妇在线| 国产毛片毛片毛片毛片毛片| 国产99re| 人人爱人人操| 欧美日韩大屌| 骚逼综合网| 小黄片免费在线观看| 国产第1页| 五月天无码av| 国产三级无码视频| 国产娇小13videos糟蹋| 中文字字幕在线中文乱码电影| 蜜桃av秘一区二区三区| 欧美视频在线观看一区| 日韩h视频| 日韩欧美在线免费观看| 女神思瑞精品一区二区三区| 人人爽人人操人人爱| 欧美性爱手机在线| 婷婷无码视频| 中文字幕在线观看辣文| 国产3p绿帽骚妻视频| 超碰成人AV| 日日操操| 女人A片一级黄色| 骚骚肥肥一区二区三区| 国产精品秘久久久久久1-~/\v7-/ 囯产精品一区二区三区线一牛影视1 | 午夜福利sw| 97超碰资源站| 精品久久精品| 99热在线播放| 97亚洲国产| 青娱乐成人在线| 操逼无码视频| 久久久久久久久久免费视频| 色色三区| 看毛片网址| 高清无码在线视频| 无码高清视频在线观看| 91无码AⅤ在线| 夜夜操免费视频| 老熟女AV| 精品成人在线视频| 嫩草AV| 国产中文字幕AV在线播放| 久久久国产AV| 日韩精品人妻无码| 免费一级黄色电影| 精品国产一二三区| 亚洲激情片| 蜜臀久久99精品久久久老牛影视 | 免费看的操逼视频| 欧洲一区二区三区| 国产AV自拍-久| 东京热日韩无码| 深夜福利网| 午夜性爱福利| 高清无码直接看| 99精品热视频| www.超碰| 狠狠搞狠狠操| 欧美成人黄色A片| 国产黄色免费网站| 大香蕉电影网站| 亚洲综合精品| 天天爱天天射| 亚洲天堂在线免费观看视频| 亚洲偷拍网| 日韩AV在线免费观看| 国产精品免费久久| 成人亚洲A片V一区二区三区蜜月 | 国产高清无码网站| 亚洲成人色色| 91熟女视频| 国产精品一区二区在线播放 | 免费人成网站| 国产操B视频| 91亚洲精品国产成人| 丁香五月综合网| 日韩成人片| 在线播放91灌醉迷J高跟美女| 免费视频一区二区三区四区| 4444操| 欧美性爱成人| 美女综合网| 影音先锋无码一区| 亚洲一区欧美| 日韩精品无码一区二区| 中文字幕北条麻妃| 在线免费观看中文字幕| 2014亚洲天堂| 天天操夜夜爱| 99热最新网址| 综综综综合网| а天堂中文在线资源| 靠比免费| 欧美生活片18| 成人a毛片| AV婷婷在线| 超碰碰碰碰碰| 欧美曰皮免费看| 国产精品精品精品| 爱搞搞就搞搞| 日韩免费性爱视频| AV片在线免费观看| 亚洲AV无码乱码AV| 青青草在线免费视频| 色五月激情五月| 国产无码午夜| 99涩涩| 丰满人妻一区二区三区Av猛交| 激情婷婷综合| 豆花视频在线| 日本啪啪网站| 欧美不卡在线| 伊人色综合网| 人妻少妇一区二区三区| 亚洲av无码精品| 人人射在线| 无码av无码AV| 777中文字幕| 四川BBBB擦BBBB| 中文字幕一级A片高清免| 久久少妇视频| 三级片网页| 成人性爱在线| 国产精品一品二区三区的使用体验| 撒尿BBw搡BBwBBw| 无码精品一区| 欧美啪啪网站| 国产黄网| 欧美操逼大片| 玉米地一级婬片A片| 亚洲人人18XXX—20HD| 北条麻妃人妻中文无码| 欧美操逼大全| 超碰人人摸| 成人免费无码A片免费| 偷拍亚洲欧美| 人人操人人操人人操人人操人人操| 日韩人妻av| 中文字幕在线观看辣文| 2019人人操| 日韩中文字幕| 国产精品婷婷久久久| 天天狠狠| 国产又爽又黄免费| 国产一区二区三区18| 亚洲欧洲日韩综合| 成人黄色大片| 国产愉拍91九色国产愉拍| 亚洲国产精品视频| 国产乱子伦一区二区三区免看| www.麻豆网91成人久久久| 中文字幕国产一区| 加勒比精品| 国产免费av在线| 欧美日韩黄| 国产aaaaaaaaaa| 成人在线黄色视频| 操逼视频一级| 91久久爽久久爽爽久久片| 国产酒店自拍| 免费A片视频| 粉嫩小泬粉嫩小泬在线| 青青草免费在线视频| 欧美日韩精品一区二区三区视频播放| 中文字幕成人| 成人欧美在线观看| 2025毛片| a天堂8在线资源| 四虎在线观看视频| 免费无码AV| 特级西西444www高清大胆免费看| 天天插天天射| 黃色毛片A片AAAA级20| 91网站在线看| 息子交尾一区二区三区| www.91爱爱,com| 黄色视频免费网站| 天天做天天干| 国产视频在线免费观看| 色色网站免费| 亚洲视频免费在线播放| 国产激情123区| 天天操天天插| 日本A∨在线| 国产精品你懂的| 日韩久久精品视频| 成人无码区免费A片久久鸭| 亚洲电影在线| 最美孕交vivoestv另类| 国产在线无码观看| 十八禁网站在线观看| 西西444www无码精品| 九色蝌蚪9l视频蝌蚪9l视频成人熟妇 | 国产丰满大乳无码免费播放| 香蕉视频91| 操逼毛片视频| 中文字幕精品在线免费视频观看视频 | 日韩无码黄| 亚洲成人精品| av在线免费观看网站| 尤物视频网站在线观看| 成人激情五月天| 日韩午夜在线观看| 亚洲色情视频| 成人做爰黄A片免费视频网站野外| 欧美日本激情| 丰满老妇高潮一级A片| 三级操逼| 啪啪免费网站| 成人毛片AV无码| 2019中文字幕在线| 一二三区视频| 婷婷五月综合激情| 亚洲欧美久久| 中文字幕成人在线观看| 蜜桃高清无码| 色婷婷中文字幕| 欧美日黄| 国产视频一区二区三区四区| 免费看一级黄色片| 台湾成人在线视频| 日韩一区二区三区在线| 亚洲无码色色| 成人女人18女人毛片| a在线观看视频| 欧美亚韩| 大香蕉一区二区| 国内自拍无码| 亚洲国产免费视频| 北条麻妃中文字幕在线| 99福利| 亚洲激情偷拍| 成人精品午夜无码免费| 99国产精品久久久久久久成人| 欧美视频免费操逼图。| 国产人人色| 97免费视频在线观看| 手机AV在线| 亚州无码一区| 91在线欧美| 国产成人精品AV在线观| 欧美一区二区三区不卡| 狠狠撸综合| 日日干天天干| 中文无码第一页| 黄色网址在线观看视频| 无码精品视频| 久久男人| 亚洲国产精品成人综合色在线婷婷| 亚洲最大黄色| 91吴梦梦一区二区传媒| 一本大道久久久久| 噜噜视频| 亚洲精品一区二区三区新线路| 亚洲日本中文字幕在线| 久久久久久久国产| 日韩A片免费看| 国产一级片免费视频| 欧美操操操| 亚洲中文字幕免费视频| 成人性爱视频免费观看| 婷婷开心色四房播播在线| 亚洲AV免费看| 麻豆精品国产传媒| 一区二区三区四区不卡| 激情乱伦五月天| 黄色片a片| 国产欧美综合一区| 精品操逼| 国产精品911| 吃奶做爱视频| gogogo高清在线完整免费播放韩国 | 久操久操久操| 丁香五香天堂网| AV东方在线| 国产精品久久久久久久牛牛| 日韩乱伦毛片| 777久久| 操逼操逼视频| 在线一区观看| 久久v| 人人干人人操人人摸| 日韩久久久久| 少妇熟女视频| 亚洲午夜剧场| 91精品免费视频| 男女av免费观看| 伊人综合色| 51成人网站免费| 内射视频免费观看| 亚洲黄色视频免费观看| 成人做爰100部片视频| 国产精品1| 毛片高清无码| 成人黄色免费在线| 天天谢天天干| 波多野结衣无码视频在线观看 | 日韩中文无| 日韩中字幕无码| 精品欧美激情精品一区| 超碰日本| 中文字幕2025年最好看电视剧 | 亚洲图片激情乱伦小说| 一级婬片A片AAAA毛片A级| 不卡在线| 欧美影院亚洲| 91丨九色丨蝌蚪丨肥女| 欧美精品秘一区二区三区蜜臀| JULIA超乳JULIA无码| 成人无码网站在线观看| 国产麻豆精品ThePorn| 欧美色婷婷| 欧美一级特黄A片免费看| 亚洲在线成人| 先锋成人影音| 北条麻妃视频| 亚洲久久久久| 中文字幕精品人妻| 丁香婷婷综合网| 69视频在线免费观看| 国产综合久久| 国产成人精| 97人人人人人人| 美女被操面费网站| 美女视频黄a视频全免费不卡| 日韩欧美中文字幕在线观看| 一级全黄120分钟免费| 日韩无码操逼| 久久撸在线视频| 大黑逼网| 91精品国产综合久久久蜜臀酒店| 色视频在线| 91精品国产一区二区| 国产视频97| 久久免费看视频| 北条麻妃在线无码| V天堂在线| 午夜啊啊啊| 91熊猫| 91成人在线影院| 欧美成人一区免费视频| 激情91| 免费视频一二三区| 日本人妻在线视频| 四虎综合网| 亚洲三级片免费观看| 午夜操逼| 99热99| 国产一a毛一a毛A免费| 日本成人高清视频| 夜间福利视频| 欧美日韩一区二区三区四区五区六区 | 天天操天天操天天操天天| 欧美成人午夜无码A片秀色直播| 久久久久久AV| 欧美丰满人妻| 中文字幕第9页| 超碰1999| 大香蕉啪啪啪啪| 欧美性猛交一区二区三区精品| 狠狠干狠狠干| 91小仙女jK白丝袜呻吟| 日本一级大毛片a一| 亚洲成人免费在线| 3D动漫操逼视频| 亚洲国产精品18久久久久久| 人妻少妇偷人精品无码免费| 国产色情性黄片Av网站| 亚洲免费在线视频观看| 欧美三级片在线视频| 精品无码人妻一区二区三区| 色综合久久88色综合| 国模无码在线| 搡BBBB搡BBB搡五十粉嫩| 一区二区三区免费观看| 成人无码毛片| 国产深夜福利| 国产免费高清视频| 欧美日韩亚洲天堂| 黄片网站免费在线观看| 一级特黄大片录像i| 狠狠色狠狠操| 亚洲女与黑人正在播放| 91人妻无码| 久久99深爱久久99精品| 天天插天天射| av天堂中文在线| 手机看片1024国产| 色情网站在线| 色婷在线| 三须三级久久三级久久18| 青草成人在线| 亚洲男女av| 成人在线观看AV| 操操操操操操| 插菊综合网| 午夜看黄片| 中文字幕不卡在线| 亚洲小电影在线| 亲子伦视频一区二区三区| 欧日韩在线| 久久精品苍井空免费一区| 99久久成人| 伊人啪啪| 日韩不卡高清在线观看视频| 国产欧美日韩综合| 免费射精一二三区| 操b网站| 日韩一级一级| 日韩人妻无码一区二区三区99| V天堂在线| 欧美亚洲日本| 欧美成人第一页| 欧美成人免费电影| 激情五月婷婷丁香| 99热碰| 97国产资源| 黄片国产| AV在线四季综合网站| 亚洲无码av电影| 黄色小说在线看| 日韩干| 精品国产免费无码久久噜噜噜AV| 操b在线免费观看| 国产精品秘精东影业| 一品国精和二品国精的文化意义| 佳佳女王footjob超级爽| 狼人综合网| 欧美干| 黃色一级一片免费播放| 91热视频| 亚洲中文无码视频| 国产熟妇婬乱一区二区| 免费视频a| 伊人网视频在线| 婷婷精品国产a久久综合| av在线一区二区| 国产成人免费观看| 国精产品一区一区三区四川| 婷婷五月天成人电影| 成年人A片| 久操人妻| 欧美亚洲中文| 国产在线视频一区| 久肏| 丁香婷婷视频| 蜜桃av秘无码一区二区三欧| AV在线免费观看网址| 天天插天天狠天天透| 91人妻人人澡人人爽人人精品乱| 西西人体444rt高清大胆模特| 亚洲成人大香蕉| 亚洲秘无码一区二区三区蜜桃中文| 91黄色在线观看| 91福利在线视频| 在线毛片网站| 69成人免费视频| 亚洲成人AV在线播放| 亚洲专区在线| 国产真实乱婬A片三区高清蜜臀 | 色情电影网站| 日本一区二区视频| 日本A片免费看| 自拍偷拍欧美| 亚洲天天| 人妻av在线| 乱伦性爱视频| 国产成人视频在线观看| 中文字幕av在线观看| 无码日韩精品一区二区免费96| 国产麻豆| 大香蕉99| 懂色成人Av| 久久电影无码| 国产潮吹| 国产无遮挡又黄又爽又| 成人777777| 久久久精品淫秽色情| 二区视频在线| 大香蕉在线视频网| 国产人体视频| 少妇搡BBBB搡BBB搡造水多/ | 亚洲va欧美va天堂v国产综合| A片免费的| 五月天激情片| 国产精品美女久久久久久久久 | 一级特黄AA片| 国产深夜福利| 欧美丰满少妇人妻精品| 自拍偷拍亚洲| 天天爽日日澡AAAA片| 大香蕉伊人在线视频| 五月婷婷六月丁香| 91少妇精品| 人人干人| 国产乱伦视屏| 人人妻日日摸狠狠躁视频| 国产三级片91| 91人妻无码精品一区二区三区| 亚洲天堂手机在线| 欧美第五页| 尤物在线| 成人福利网站| 超碰日本| 99性爱视频| 日韩无任何视频在线观看| 安徽妇搡BBBB搡BBBB,另类老妇| 国产伦子伦一级A片免费看老牛 | 十八禁网站在线观看| 免费欧美成人网站| 超碰青青青| 日本电影一区二区三区| 黑人巨大精品欧美| 久久亭亭| 欧美日韩一级视频| 亚洲a视频| 亚洲日韩在线播放| 欧美亚洲国产精品| 中文字幕无码乱伦| 久久久国产AV| 最近最经典中文MV字幕| 91精品在线观看视频| 青青青草视频在线观看| 在线观看黄色AV| 亚洲AV成人无码久久精品麻豆| 蜜桃视频一区二区三区| brazzers疯狂作爱| 日韩无码一区二区三| 成人无码影院日韩,成人年…| 中文字幕在线免费观看电影| 亚洲40p| 日韩精品91| 国产精品一区二区三| 一区二区高清无码| 一区二区操逼| 日本性爱网址| 污视频网站免费在线观看| 理论片无码| 亚洲欧美激情小说| 成人第一页| 你懂的视频| 欧美精品久久久久久久久爆乳| 射射AV| 国产精品在线免费观看| 男人的天堂在线播放| 成人免费视频国产免费麻豆,| 国产精品久久久久久久久久久免费看 | 中文字幕精品在线| 成人电影aaa| 玖玖中文字幕| 少妇搡BBBB搡BBB搡小说| 日韩图色| 91成人国产| 波多野成人无码精品69| 天天狠狠| 亚洲成人免费在线视频| 国产美女在线观看| 国产成人精品777777| 操逼啦| 久久久国产91桃色一区二区三区| 欧美黄片网站| 波多野结衣网| 亚洲天堂无码av| 国产人妻精品一二三区| 免费69视频| 黄片一区二区| 天天日很很操| 51嘿嘿嘿国产精品伦理| 豆花视频在线看| 嫩草视频在线观看| 成人在线中文字幕| 翔田千里被操120分钟| 中文字幕无码精品三级在线欧美 | 日韩亚洲在线视频| 肏屄视频网站| 中文字幕无码高清| 一区二区三区视频免费| 国产91在线中日| 欧美日韩一级二级三级| 久久精品偷拍视频| 日本国产精品| 91人人妻| 欧美婷婷五月| 少妇高潮日韩| 一区久久| 成人小视频在线观看| 欧美视频一区| 欧美日韩三级在线| 在线观看视频国产| AV中文字幕在线播放| 91站街农村熟女露脸| 亚州AV天堂| 天天透天天干| 五月丁香激情综合| 在线观看黄片视频| 神马午夜精品95| 国产成人电影一区二区| 少妇av| 爱搞搞网| 中文字幕视频2023| 黄网91| 成人免费A片在线观看直播96| 艳妇乳肉豪妇荡乳AV无码福利| 欧美成人无码A片免费| 午夜做爱福利视频| 躁BBB躁BBB躁BBBBBB日视频| 懂色AV一区二区三区国产中文在线| 成人A片免费看| 久艹| 国产高清无码网站| 97亚洲综合| 偷拍第一页| 大吊妞| 天堂国产一区二区三区| 三级无码电影| 人人草人人草| 九九九九精品视频| 亚洲精品在线视频观看| 午夜精品电影| 日本在线观看| 最新激情网站| 老女人网站| 三级成人网| 激情小视频国产在线播放| 超碰人人爱人人操| 夜操| 久久青| 大香伊人国产| 免费网站观看www在线观| av自拍| 欧美一级片内射| 99久久网站| 三级片中文| 18禁在线播放| 成人亚洲精品一区二区三区| 日韩亚洲在线观看| 一级a一级a免费观看视频Al明星| 欧美亚洲综合手机在线| 一区二区免费在线观看| 水蜜桃视频免费| 欧美黄色A片| 狼友视频免费观看| 黄片中文字幕| 欧美国产精品一二三产品在哪买| 欧美日p| 亚洲AV无码成人精品一区| 亚洲日韩一级片| 四川妇BBB桑BBB桑BBB| 成年人免费公开视频| 日本综合色| 日韩视频免费观看| 日本黄色大全| 2025AV在线| 国产一级AAAAA片免费| 五月人妻| 亚洲一区二区三区在线视频| 黄片网站视频| 久久黄色视频免费看| 超碰日逼| 婷婷视频在线| 欧美久草蜜桃视频| 国产Av影视| 国产乱伦网| 亚洲高清视频一区| 神马午夜视频| www.911国产| 亚洲成年人网| 色片无码| 91精品一区二区| 苏妲己一级婬片A片| 亚洲综合在线观看视频| 天天日天天操天天干| 午夜福利sw| 精东影业AV无码精品| 最好看的MV中文字幕国语电影| 午夜成人免费福利| 亚洲AV网址| 欧美日韩一区二区三区| jzzijzzij亚洲成熟少妇在线观看| a天堂8在线资源| 日本一级A片| 色婷在线| 无码精品人妻一区二区三区漫画| 激情亚洲五月天| 国产午夜激情视频| 爱爱毛片| 国产乱码一区二区三区| 香蕉AV777XXX色综合一区| 怡春院免费视频| 超碰人妻人人操| 国产色色色色| 国产換妻4P视频| 中文字幕精品视频在线观看| 伊人东京热| 日逼小视频| 亚洲区欧美区| 国产主播在线观看| 午夜8050| 国内精品久久久| 欧美一级黄片免费看| 日韩欧美成人网站| 国产一区二区精品| 亚洲高清无码视频在线播放| 亚洲成人免费在线观看| 黄色带亚州| 大香蕉大香蕉视频网| 日本免费爱爱视频|