跟大家分享一個我苦惱很久的韓文單字무좀
第一次看到這個單字是在很久以前的綜藝節目青春不敗裡,當時我看的是中國翻譯的謎之版本(我的韓文有絕大部分從綜藝節目裡學到,之後可以再跟大家分享)
那個時候무좀被翻譯成腳氣,到現在我還不懂甚麼是腳氣,但大概能理解就是腳有味道的意思吧?
到了昨天我才知道무좀就是台灣說的香港腳的意思啦,因為看到了발톱무좀這個單字,也就是我們說的灰指甲,我才理解過來
然後剛剛看到了 Dr. Eko's Royal Academy of English 皇家英語學苑 的Youtube影片「Lectures with the Vampire 吸血鬼英語教室 第四集 拜託!不要再背單字了!!」
用Eko老師的話說就是 HOW IMPRESSIVE 太屌了!
Eko老師提到的學習概念跟我常常跟學生提的概念幾乎100%一樣
幫大家整理一下我覺得一個外語學習者(無論是英文 韓文 日文 甚麼文都一樣)必須清楚知道的概念
1. 不要背單字,單字重複出現自然就會記得
我從來不叫我的學生去背單字,因為我自己從不背單字。
背單字真的只能應付考試而已,考試考單字只會出最常見的那個意思。
有人擔心詞彙量會不會不夠?
在一份可以正式出版的合格教材中,他的編排上單字絕對是循序漸進,而且基礎的單字會一直重複出現。所以你看完一本書,同個單字可能會出現個十次、二十次。這樣就算背不起來也難,對吧?
但是關鍵在「你必須每次看到這個單字都認真理解這個單字是甚麼意思」,如果你每次看到都只是看過去,大概大概理解,那就算看個一百遍,可能也很難把這個單字記起來。
2. 不要太依賴字典,字典不會告訴你這個詞的每個使用法
我曾經遇過學生問需不需要買電子辭典之類的問題,我跟他說不用,因為用不到。畢竟現在網路辭典那麼發達(不是
語言的使用不是一個辭典的更新速度能跟上的,這個道理應該大家都懂。這樣如果你要查的意思根本不在字典上,就很難了解這個詞,這個句子,甚至這段文章了。
更好的方法是前後文推敲。Eko老師也有提到,前後文推敲並不是單純只看這個句子的前後句,要擴大的整篇文章。通常這樣你可以理解不少單字,尤其是當韓文中的漢字語多到不行,還可以利用類似讀音猜測的時候,可以理解出更多單字的意思。
現在即使我真的有不懂的單字,我也不常在字典上搜尋,反而更常google 「這個單字 뜻」뜻就是意思,這樣更容易理解這個單字被使用的情況。
千萬不要看著字典上這些意思跟解釋,想要套用在所有句子,這樣總有一天會卡關的。
3. 用自己的話去翻譯與理解
可能很多人看到這個tip會覺得「啊我韓文就不夠好,我要怎麼自己翻譯?」。沒錯,這個tip的確是建立在你的韓文能力已經有了一定程度,可能一級以上才能做到。
所謂自己翻譯與理解就像這篇po文最上面講的例子一樣,不要靠別人給的譯文理解,用自己的想法去定義一個單字的意義。要有一定程度的原因也在這裡,必須確定自己定義的意義是對的。
像韓文中有許多ㄴ/는/ㄹ還有很多時態都是中文沒有的,當你可以理解它的功能後,就要開始自己去想這個東西出現在句子中,我會怎麼翻譯?這個翻譯可能不會是唯一解,但絕對是對你自己的最佳解。
再來是最後一個tip
4. 把一個句子拆解後重組
這是最後一個階段,也是最難的階段。把一個句子的每個單字都拆開翻成中文後再重組成一個句子。這樣看起來好像不難,但你必須知道每個字的意思以及結構,還有他們的詞性才能做到。
這邊還可以補充一點,也是我在上課時常常跟學生強調的。韓文的核心在敘述語,也就是動詞與形容詞。在看一個句子時先找出敘述語,對於整個句子的了解就會簡單許多。
在研究所的課程,所有教材都是原文的。原文書、原文論文,剛進入研究所真的不能適應這種兩三行的句子,也是用這個方法慢慢拼湊出來,才把閱讀的能力提升起來。
以上就是我整理Eko老師與我自身韓文學習經驗的小技巧,希望大家都可以活用,讓外語能力成長更迅速!
*本文沒有任何工商、宣傳,單純是看到覺得很實用分享給大家(畢竟我這麼小咖)
影片是這個:https://www.youtube.com/watch?v=jSZOsClfIEo&ab_channel=Dr.EkoShakespeare%E7%9A%87%E5%AE%B6%E8%8B%B1%E8%AA%9E%E5%AD%B8%E8%8B%91
同時也有1部Youtube影片,追蹤數超過2萬的網紅不足哥한국어,也在其Youtube影片中提到,안녕하세요 不足哥입니다 不足哥帶你『輕鬆、快速學韓文』 想快速學會『韓文日常會話嗎?』 想講一口流利的『韓文』嗎? 想學韓文可是卻又『覺得韓文很難』提不起勁學嗎? 想學韓文可是卻找不到有趣的頻道可以『好好學習韓文』嗎? 今天要跟大家介紹五句韓國人生活常用會話! 1 이름이 뭐예요?/성함...
는用法 在 Daily韓語 Facebook 的最佳解答
잠깐 헷갈렸나 봐요一時搞混了吧
‘搞混’的韓語叫헷갈리다。
잠깐 헷갈렸나 봐요的잠깐指’一時’’一下子’。
這句雖然很短,但用到(으)ㄴ가 보다/나 보다的用法。
韓語有關’推測’的語法很發達,種類多,各語法涵義跟功能也有微妙的差別。其中,不講經歷的感受,而憑據猜測沒有親自經歷的情境或事物,這時(으)ㄴ가 보다/나 보다。這語法跟(으)ㄴ/는 것 같다當很好的比較。
若你對一種食物,以前吃過或正在吃,要表達你的感想就說맛있는 것 같아요。
若你沒親自吃過那食物,但看到很多人在吃就說맛있나 봐요。A(으)ㄴ가 보다/V나 보다的過去式為았/었나 보다。
가:저 식당에 사람이 많네요. 맛있나 봐요.
那家餐廳有很多人。看來好像很好吃。
나:진짜! 우리도 저 식당 가요.真的! 我們也去那家好了。
(음식을 먹어 본 후吃過食物後)
가:이 집 진짜 싸고 맛있는 것 같아요.
我覺得這家真的便宜又好吃。
나:맞아요. 가성비 갑! 다음에 또 와야겠어요.
對! Cp值很高! 下次要再次來。
<照片來源:玩什麼好呢>
는用法 在 不足哥 한국어 Facebook 的最佳解答
要瞭解價值才會懂得珍貴地使用「擁有的事物」而不會忘記。
가치를 알아야 ‘가진 것’을 잊지 않고 귀하게 쓰게 된다.
不足哥今日很認真打的很仔細呦!
中文翻譯角度解析:
*가진 것 這個單字直翻是『已經帶著的』但是如果直接翻成「要瞭解價值會懂得使用《已經帶著的》」這樣中文根本看不懂XDDDDD
研究後會發現韓文會話或文章有很多『什麼什麼+的(것)』用法 -> 中文乍看之下會看不懂
所以適時地把 「것」 翻成 -> 事情/東西/事物/部分/方面.....(看中文語順的狀況)這樣更可以把意思翻得到位呦 (我中文還是很不足,歡迎中文翻譯高手切磋指教交流)
*有時候某些狀況之下可以改變翻譯順序,這樣中文語順上更順。
眼尖的網友會發現 잊지 않고 귀하게 쓰게 된다 ,其中 잊지 않고(不要忘記) 這個詞是放在前面,귀하게 쓰게 된다(珍貴地使用) 是放在後面。
但如果按照韓文語順中文直接翻譯的話....【要瞭解價值才不會忘記「擁有的事物」並能珍貴地使用】->乍看之下中文可能覺得有點怪怪derXDDDDD
若以中文邏輯的角度來看,應該說韓文有東西省略了
->要瞭解(擁有的事物)價值才不會忘記「擁有的事物」(的存在) 並(懂得)珍貴地使用(已擁有的事物)
->因為要補的東西太多,所以使用調換順序法XDD
*翻譯韓文十幾年的前輩曾經跟我說,韓文翻譯成中文時感覺就是要腦補很多東西(主詞、順序、代名詞、中文文法....)
*韓文跟中文畢竟是兩種不同的語言,「語言邏輯真的很不一樣」中文如果順序不同就會聽不懂了!但是這個韓文原文韓國人是很清楚可以理解的句子。
*如何在不偏離原本單字、保留韓文單字的原意的情況下,翻譯出最精準讓人一目瞭然的中文,這部分不足哥還是很不足,還在努力學習中!
未來有機會學到更多之後,韓翻中這部分再跟大家多多分享呦!敝人特質上是比較喜歡做筆譯的,所以較常思考研究這方面的眉眉角角(低調路線)
單字文法解析:
n. 가치 價值
를 受詞助詞 (를/을)
v. 알다 瞭解/知道/明白/認識/懂
文法『動詞or形容詞+아/어/해야』 必須~/應該~/要~
-> 알아야 必須要瞭解
v. 가지다 拿/帶著/擁有/持有...
n. 것 東西/各種事物代名詞/的
n. 가진 것的 「진」 -> 動詞過去式冠詞化 -> 已經擁有的
v. 잊다 忘記
文法【形容詞or動詞 + 지 않다】 不~
文法『動詞or形容詞+고』然後/又~
adj. 귀하다 珍貴/寶貴
文法【形容詞+게】~地(形容詞副詞化) -> 귀하게 (珍貴地)
adj/v. 쓰다 苦/使用/寫/戴
文法【動詞 게+ 되다】 變成~(非主動的變成某種情況)
게 된다的 「된」: 文書體的的結尾動詞有尾音時要+『는』沒有尾音時要加『ㄴ』
►喜歡不足哥勵志小語的記得幫我FB粉絲團推廣出去呦!
#不足哥每日一句
#不足哥台中學韓文
#不足哥文法
#不足哥每日一句
#不足哥發音班
► 追蹤不足哥IG:https://www.instagram.com/peter_813319/
► 訂閱不足哥Youtube頻道:https://www.youtube.com/channel/UCC9CAxup9QtOZA4JEpzXo0g
는用法 在 不足哥한국어 Youtube 的最讚貼文
안녕하세요 不足哥입니다
不足哥帶你『輕鬆、快速學韓文』
想快速學會『韓文日常會話嗎?』
想講一口流利的『韓文』嗎?
想學韓文可是卻又『覺得韓文很難』提不起勁學嗎?
想學韓文可是卻找不到有趣的頻道可以『好好學習韓文』嗎?
今天要跟大家介紹五句韓國人生活常用會話!
1 이름이 뭐예요?/성함이 어떻게 되세요?
2 몇 살이에요? /나이가 어떻게 되세요?
3 이게 뭐예요?
4 이게 얼마예요?
5 취미가 뭐예요?
如果喜歡我的頻道的話不要忘記按下訂閱喔!
假如不想錯過任何一支影片也請記得按下小鈴鐺喔
拜託大家訂閱一下! 拜託拜託 !! 訂閱+分享+按讚^^
喜歡我的朋友可以訂閱跟多多分享喔
如果大家有想要學的韓文相關主題、
或是想要看其他部韓劇介紹的人都歡迎留言給我喔!
各位的建議有機會成為下一支影片的題材^^
我是不足哥~我們下次見
看上一支影片:韓國生活常用會話 part1
https://www.youtube.com/watch?v=V6SE65MHwgo&list=PLhgnW28bJ4ya0UA4nWaW49jDNwEBsU2cr
看上一支影片:看花遊記學韓文
https://www.youtube.com/watch?v=vvoQJmjNo98
TOPIK必勝文法篇:이/가 , 은/는用法大公開
https://www.youtube.com/watch?v=tNCUrwgMy5U&list=PLhgnW28bJ4yZPoNIyJe2zwfXNhK3xWW1c
#韓文聽力寫作閱讀口說
#學韓文
#學韓文文法
#學韓文會話
#學韓文單字
#學韓文語法
#學韓文基礎
#學韓文句子
#學韓文初級會話
#學韓文歌
#學韓文方法
#學韓文影片

는用法 在 金老師的韓語1-53. 學習韓文文法(動詞修飾名詞"的"的用法"ㄴ/은 ... 的必吃
金老師的韓語1-53. 學習韓文文法(動詞修飾名詞"的"的用法"ㄴ/은" "는" "ㄹ/을") 마시다修飾커피過去性(ㄴ/은) 마신커피已(經喝的咖啡) 마시다修飾커피現在性(는) ... ... <看更多>
는用法 在 YouTube Data API Overview - Google for Developers 的必吃
Introduction
This document is intended for developers who want to write applications that interact with YouTube. It explains basic concepts of YouTube and of the API itself. It also provides an overview of the different functions that the API supports.
Before you startYou need a Google Account to access the Google API Console, request an API key, and register your application.
Create a project in the Google Developers Console and obtain authorization credentials so your application can submit API requests.
After creating your project, make sure the YouTube Data API is one of the services that your application is registered to use:
Go to the API Console and select the project that you just registered.
Visit the Enabled APIs page.
In the list of APIs, make sure the status is ON for the YouTube Data API v3.
If your application will use any API methods that require user authorization, read the authentication guide to learn how to implement OAuth 2.0 authorization.
Select a client library to simplify your API implementation.
Familiarize yourself with the core concepts of the JSON (JavaScript Object Notation) data format. JSON is a common, language-independent data format that provides a simple text representation of arbitrary data structures. For more information, see json.org.
Resources and resource types
A resource is an individual data entity with a unique identifier. The table below describes the different types of resources that you can interact with using the API.
Resources
activity
Contains information about an action that a particular user has taken on the YouTube site. User actions that are reported in activity feeds include rating a video, sharing a video, marking a video as a favorite, and posting a channel bulletin, among others.
channel
Contains information about a single YouTube channel.
channelBanner
Identifies the URL to use to set a newly uploaded image as the banner image for a channel.
channelSection
Contains information about a set of videos that a channel has chosen to feature. For example, a section could feature a channel's latest uploads, most popular uploads, or videos from one or more playlists.
guideCategory
Identifies a category that YouTube associates with channels based on their content or other indicators, such as popularity. Guide categories seek to organize channels in a way that makes it easier for YouTube users to find the content they're looking for. While channels could be associated with one or more guide categories, they are not guaranteed to be in any guide categories.
i18nLanguage
Identifies an application language that the YouTube website supports. The application language can also be referred to as a UI language.
i18nRegion
Identifies a geographic area that a YouTube user can select as the preferred content region. The content region can also be referred to as a content locale.
playlist
Represents a single YouTube playlist. A playlist is a collection of videos that can be viewed sequentially and shared with other users.
playlistItem
Identifies a resource, such as a video, that is part of a playlist. The playlistItem resource also contains details that explain how the included resource is used in the playlist.
search result
Contains information about a YouTube video, channel, or playlist that matches the search parameters specified in an API request. While a search result points to a uniquely identifiable resource, like a video, it does not have its own persistent data.
subscription
Contains information about a YouTube user subscription. A subscription notifies a user when new videos are added to a channel or when another user takes one of several actions on YouTube, such as uploading a video, rating a video, or commenting on a video.
thumbnail
Identifies thumbnail images associated with a resource.
video
Represents a single YouTube video.
videoCategory
Identifies a category that has been or could be associated with uploaded videos.
watermark
Identifies an image that displays during playbacks of a specified channel's videos. The channel owner can also specify a target channel to which the image links as well as timing details that determine when the watermark appears during video playbacks and then length of time it is visible.
Note that, in many cases, a resource contains references to other resources. For example, a playlistItem
resource's snippet.resourceId.videoId
property identifies a video resource that, in turn, contains complete information about the video. As another example, a search result contains either a videoId
, playlistId
, or channelId
property that identifies a particular video, playlist, or channel resource.
The following table shows the most common methods that the API supports. Some resources also support other methods that perform functions more specific to those resources. For example, the videos.rate
method associates a user rating with a video, and the thumbnails.set
method uploads a video thumbnail image to YouTube and associates it with a video.
Operations
list
Retrieves (
GET
) a list of zero or more resources.insert
Creates (
POST
) a new resource.update
Modifies (
PUT
) an existing resource to reflect data in your request.delete
Removes (
DELETE
) a specific resource.The API currently supports methods to list each of the supported resource types, and it supports write operations for many resources as well.
The table below identifies the operations that are supported for different types of resources. Operations that insert, update, or delete resources always require user authorization. In some cases, list
methods support both authorized and unauthorized requests, where unauthorized requests only retrieve public data while authorized requests can also retrieve information about or private to the currently authenticated user.
Supported Operations
list
insert
update
delete
activity
caption
channel
channelBanner
channelSection
comment
commentThread
guideCategory
i18nLanguage
i18nRegion
playlist
playlistItem
search result
subscription
thumbnail
video
videoCategory
watermark
Quota usage
The YouTube Data API uses a quota to ensure that developers use the service as intended and do not create applications that unfairly reduce service quality or limit access for others. All API requests, including invalid requests, incur at least a one-point quota cost. You can find the quota available to your application in the API Console.
Projects that enable the YouTube Data API have a default quota allocation of 10,000 units per day, an amount sufficient for the overwhelming majority of our API users. Default quota, which is subject to change, helps us optimize quota allocations and scale our infrastructure in a way that is more meaningful to our API users. You can see your quota usage on the Quotas page in the API Console.
Note: If you reach the quota limit, you can request additional quota by
completing the Quota extension
request form for YouTube API Services.
Google calculates your quota usage by assigning a cost to each request. Different types of
operations have different quota costs. For example:
A read operation that retrieves a list of resources -- channels, videos, playlists -- usually
costs 1 unit.
A write operation that creates, updates, or deletes a resource usually has costs
50
units.A search request costs
100
units.A video upload costs
1600
units.The Quota costs for API requests table shows the
quota cost of each API method. With these rules in mind, you can estimate the number of requests
that your application could send per day without exceeding your quota.
The API allows, and actually requires, the retrieval of partial resources so that applications avoid transferring, parsing, and storing unneeded data. This approach also ensures that the API uses network, CPU, and memory resources more efficiently.
The API supports two request parameters, which are explained in the following sections, that enable you to identify the resource properties that should be included in API responses.
The part
parameter identifies groups of properties that should be returned for a resource.
The fields
parameter filters the API response to only return specific properties within the requested resource parts.
part
parameterThe part
parameter is a required parameter for any API request that retrieves or returns a resource. The parameter identifies one or more top-level (non-nested) resource properties that should be included in an API response. For example, a video
resource has the following parts:
snippet
contentDetails
fileDetails
player
processingDetails
recordingDetails
statistics
status
suggestions
topicDetails
All of these parts are objects that contain nested properties, and you can think of these objects as groups of metadata fields that the API server might (or might not) retrieve. As such, the part
parameter requires you to select the resource components that your application actually uses. This requirement serves two key purposes:
It reduces latency by preventing the API server from spending time retrieving metadata fields that your application doesn't use.
It reduces bandwidth usage by reducing (or eliminating) the amount of unnecessary data that your application might retrieve.
Over time, as resources add more parts, these benefits will only increase since your application will not be requesting newly introduced properties that it doesn't support.
How to use thefields
parameterThe fields
parameter filters the API response, which only contains the resource parts identified in the part
parameter value, so that the response only includes a specific set of fields. The fields
parameter lets you remove nested properties from an API response and thereby further reduce your bandwidth usage. (The part
parameter cannot be used to filter nested properties from a response.)
The following rules explain the supported syntax for the fields
parameter value, which is loosely based on XPath syntax:
Use a comma-separated list (fields=a,b
) to select multiple fields.
Use an asterisk (fields=*
) as a wildcard to identify all fields.
Use parentheses (fields=a(b,c)
) to specify a group of nested properties that will be included in the API response.
Use a forward slash (fields=a/b
) to identify a nested property.
In practice, these rules often allow several different fields
parameter values to retrieve the same API response. For example, if you want to retrieve the playlist item ID, title, and position for every item in a playlist, you could use any of the following values:
fields=items/id,playlistItems/snippet/title,playlistItems/snippet/position
fields=items(id,snippet/title,snippet/position)
fields=items(id,snippet(title,position))
Note: As with all query parameter values, the fields
parameter value must be URL encoded. For better readability, the examples in this document omit the encoding.
The examples below demonstrate how you can use the part
and fields
parameters to ensure that API responses only include the data that your application uses:
Example 1 returns a video resource that includes four parts as well as
kind
and etag
properties.Example 2 returns a video resource that includes two parts as well as
kind
and etag
properties.Example 3 returns a video resource that includes two parts but excludes
kind
and etag
properties.Example 4 returns a video resource that includes two parts but excludes
kind
and etag
as well as some nested properties in the resource's snippet
object.Example 1
URL: https://www.googleapis.com/youtube/v3/videos?id=7lCDEYXw3mM&key=YOUR_API_KEY
&part=snippet,contentDetails,statistics,statusDescription: This example retrieves avideo
resource and identifies several
resource parts that should be included in the API response.API response:
{
"kind": "youtube#videoListResponse",
"etag": "\"UCBpFjp2h75_b92t44sqraUcyu0/sDAlsG9NGKfr6v5AlPZKSEZdtqA\"",
"videos": [
{
"id": "7lCDEYXw3mM",
"kind": "youtube#video",
"etag": "\"UCBpFjp2h75_b92t44sqraUcyu0/iYynQR8AtacsFUwWmrVaw4Smb_Q\"",
"snippet": {
"publishedAt": "2012-06-20T22:45:24.000Z",
"channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
"title": "Google I/O 101: Q&A On Using Google APIs",
"description": "Antonio Fuentes speaks to us and takes questions on working with Google APIs and OAuth 2.0.",
"thumbnails": {
"default": {
"url": "https://i.ytimg.com/vi/7lCDEYXw3mM/default.jpg"
},
"medium": {
"url": "https://i.ytimg.com/vi/7lCDEYXw3mM/mqdefault.jpg"
},
"high": {
"url": "https://i.ytimg.com/vi/7lCDEYXw3mM/hqdefault.jpg"
}
},
"categoryId": "28"
},
"contentDetails": {
"duration": "PT15M51S",
"aspectRatio": "RATIO_16_9"
},
"statistics": {
"viewCount": "3057",
"likeCount": "25",
"dislikeCount": "0",
"favoriteCount": "17",
"commentCount": "12"
},
"status": {
"uploadStatus": "STATUS_PROCESSED",
"privacyStatus": "PRIVACY_PUBLIC"
}
}
]
}
Example 2
URL: https://www.googleapis.com/youtube/v3/videos?id=7lCDEYXw3mM&key=YOUR_API_KEY
&part=snippet,statisticsDescription: This example modifies thepart
parameter value so that the
contentDetails
andstatus
properties are not included
in the response.API response:
{
"kind": "youtube#videoListResponse",
"etag": "\"UCBpFjp2h75_b92t44sqraUcyu0/sDAlsG9NGKfr6v5AlPZKSEZdtqA\"",
"videos": [
{
"id": "7lCDEYXw3mM",
"kind": "youtube#video",
"etag": "\"UCBpFjp2h75_b92t44sqraUcyu0/iYynQR8AtacsFUwWmrVaw4Smb_Q\"",
"snippet": {
"publishedAt": "2012-06-20T22:45:24.000Z",
"channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
"title": "Google I/O 101: Q&A On Using Google APIs",
"description": "Antonio Fuentes speaks to us and takes questions on working with Google APIs and OAuth 2.0.",
"thumbnails": {
"default": {
"url": "https://i.ytimg.com/vi/7lCDEYXw3mM/default.jpg"
},
"medium": {
"url": "https://i.ytimg.com/vi/7lCDEYXw3mM/mqdefault.jpg"
},
"high": {
"url": "https://i.ytimg.com/vi/7lCDEYXw3mM/hqdefault.jpg"
}
},
"categoryId": "28"
},
"statistics": {
"viewCount": "3057",
"likeCount": "25",
"dislikeCount": "0",
"favoriteCount": "17",
"commentCount": "12"
}
}
]
}
Example 3
URL: https://www.googleapis.com/youtube/v3/videos?id=7lCDEYXw3mM&key=YOUR_API_KEY
&part=snippet,statistics&fields=items(id,snippet,statistics)Description: This example adds thefields
parameter to remove all
kind
andetag
properties from the API response.API response:
{
"videos": [
{
"id": "7lCDEYXw3mM",
"snippet": {
"publishedAt": "2012-06-20T22:45:24.000Z",
"channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
"title": "Google I/O 101: Q&A On Using Google APIs",
"description": "Antonio Fuentes speaks to us and takes questions on working with Google APIs and OAuth 2.0.",
"thumbnails": {
"default": {
"url": "https://i.ytimg.com/vi/7lCDEYXw3mM/default.jpg"
},
"medium": {
"url": "https://i.ytimg.com/vi/7lCDEYXw3mM/mqdefault.jpg"
},
"high": {
"url": "https://i.ytimg.com/vi/7lCDEYXw3mM/hqdefault.jpg"
}
},
"categoryId": "28"
},
"statistics": {
"viewCount": "3057",
"likeCount": "25",
"dislikeCount": "0",
"favoriteCount": "17",
"commentCount": "12"
}
}
]
}
Example 4
URL: https://www.googleapis.com/youtube/v3/videos?id=7lCDEYXw3mM&key=YOUR_API_KEY
&fields=items(id,snippet(channelId,title,categoryId),statistics)&part=snippet,statisticsDescription: This example modifies thefields
parameter from example 3
so that in the API response, each video resource'ssnippet
object only includes thechannelId
,title
,
andcategoryId
properties.API response:
{
"videos": [
{
"id": "7lCDEYXw3mM",
"snippet": {
"channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
"title": "Google I/O 101: Q&A On Using Google APIs",
"categoryId": "28"
},
"statistics": {
"viewCount": "3057",
"likeCount": "25",
"dislikeCount": "0",
"favoriteCount": "17",
"commentCount": "12"
}
}
]
}
Optimizing performance
Using ETags
ETags, a standard part of the HTTP protocol, allow applications to refer to a specific version of a particular API resource. The resource could be an entire feed or an item in that feed. This functionality supports the following use cases:
Caching and conditional retrieval – Your application can cache API resources and their ETags. Then, when your application requests a stored resource again, it specifies the ETag associated with that resource. If the resource has changed, the API returns the modified resource and the ETag associated with that version of the resource. If the resource has not changed, the API returns an HTTP 304 response (Not Modified
), which indicates that the resource has not changed. Your application can reduce latency and bandwidth usage by serving cached resources in this manner.
The client libraries for Google APIs differ in their support of ETags. For example, the JavaScript client library supports ETags via a whitelist for allowed request headers that includes If-Match
and If-None-Match
. The whitelist allows normal browser caching to occur so that if a resource's ETag has not changed, the resource can be served from the browser cache. The Obj-C client, on the other hand, does not support ETags.
Protecting against inadvertent overwrites of changes – ETags help to ensure that multiple API clients don't inadvertently overwrite each other's changes. When updating or deleting a resource, your application can specify the resource's ETag. If the ETag doesn't match the most recent version of that resource, then the API request fails.
Using ETags in your application provides several benefits:
The API responds more quickly to requests for cached but unchanged resources, yielding lower latency and lower bandwidth usage.Your application will not inadvertently overwrite changes to a resource that were made from another API client.
The Google APIs Client Library for JavaScript supports If-Match
and If-None-Match
HTTP request headers, thereby enabling ETags to work within the context of normal browser caching.
Using gzip
You can also reduce the bandwidth needed for each API response by enabling gzip compression. While your application will need additional CPU time to uncompress API responses, the benefit of consuming fewer network resources usually outweighs that cost.
To receive a gzip-encoded response you must do two things:
Set the Accept-Encoding
HTTP request header to gzip
.
Modify your user agent to contain the string gzip
.
The sample HTTP headers below demonstrate these requirements for enabling gzip compression:
Accept-Encoding: gzip
User-Agent: my program (gzip)
... <看更多>
는用法 在 韓文는/은이/가用法- 語言板 - Dcard 的必吃
想問各位韓文前輩大大,如何才能快速區分何時該用는/은或是이/가,課本上和網路我都查過了,都說是主格主詞,像這句의자가없습니다.,為何不能用의자 ... ... <看更多>