From 416c8bb1e7b4e0bcce85a7a3d900ad4391289f3b Mon Sep 17 00:00:00 2001 From: takealook97 Date: Sun, 8 Sep 2024 00:21:13 +0900 Subject: [PATCH 1/3] docs: update README --- README.md | 54 +++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 41 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index ae3686b..dc06835 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,53 @@ # Random Sentence API -## based on +## πŸ—‚οΈ Data Source - traditional korean proverbs, more than 4,000 + - from https://www.krpia.co.kr/product/main?plctId=PLCT00004626#none - famous saying (soon) - maxim (soon) --- -## direction +## πŸ“š Instruction -### api url +(No author information is provided for traditional Korean proverbs.) -πŸ’‘`https://sentence.udtk.site/random/{count}` +### 1. `https://sentence.udtk.site/{id}` -- count : number of sentences to get -- count range : 1 ~ 20 +- **description** : return a sentence by id + +### 2. `https://sentence.udtk.site/random?count=` + +- **description** : return several random sentences +- request parameter : `count` + - count : number of sentences to get + - range : 1 ~ 20 + - default : 1 + +### 3. `https://sentence.udtk.site/language?language=&count=` + +- **description** : return random sentences in chosen language +- request parameter : `language`, `count` + - language : `kor`, `eng` + - default : `kor` + - count : number of sentences to get + - range : 1 ~ 20 + - default : 1 + +### 4. `https://sentence.udtk.site/sort?sort=&count=` + +- **description** : return random sentences in chosen sort +- request parameter : `sort`, `count` + - sort : `κ°€1`, `κ°€2`, `λ‚˜`, `λ‹€`, `마`, `λ°”`, `사1`, `사2`, `μ•„1`, `μ•„2`, `자1`, `자2`, `μ°¨`, `μΉ΄`, `타`, `파`, `ν•˜`, `quote` + - default : `κ°€1` + - count : number of sentences to get + - range : 1 ~ 20 + - default : 1 ### response example -`https://sentence.udtk.site/random/2` +ex) `https://sentence.udtk.site/random?count=2` ```json [ @@ -34,15 +62,15 @@ ] ``` -### request limit +### ❗️request limit -- 20 requests per 5 minutes +- ***20 requests per 5 minutes*** - when the limit is exceeded, the response will be `429 Too Many Requests` - - time left to reset the limit will be included in the response header `X-Rate-Limit-Retry-After-Seconds` +- time left to reset the limit will be included in the response header `X-Rate-Limit-Retry-After-Seconds` --- -## stack +## πŸ› οΈ Stack - Java 17 - Spring Boot 3.3.3 @@ -57,6 +85,6 @@ --- -## architecture +## πŸ—οΈ Architecture -architecture \ No newline at end of file +architecture From 15b7a20fc98cbdddc47f121189445c7419e36a32 Mon Sep 17 00:00:00 2001 From: takealook97 Date: Sun, 8 Sep 2024 08:50:18 +0900 Subject: [PATCH 2/3] refactor: set @EntityGraph to avoid N+1 --- .../sentenceapi/repository/SentenceRepository.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main/java/site/udtk/sentenceapi/repository/SentenceRepository.java b/src/main/java/site/udtk/sentenceapi/repository/SentenceRepository.java index d35f188..4527ef5 100644 --- a/src/main/java/site/udtk/sentenceapi/repository/SentenceRepository.java +++ b/src/main/java/site/udtk/sentenceapi/repository/SentenceRepository.java @@ -1,10 +1,23 @@ package site.udtk.sentenceapi.repository; +import java.util.List; +import java.util.Optional; + +import org.springframework.data.jpa.repository.EntityGraph; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; +import io.micrometer.common.lang.NonNullApi; import site.udtk.sentenceapi.domain.Sentence; @Repository +@NonNullApi public interface SentenceRepository extends JpaRepository { + @EntityGraph(attributePaths = {"category"}) + Optional findById(Long id); + + @EntityGraph(attributePaths = {"category"}) + @Query("SELECT s FROM Sentence s WHERE s.id IN :ids") + List findAllById(List ids); } From 277acf8e4734271ab24aa11d0c13444a8e0b5862 Mon Sep 17 00:00:00 2001 From: takealook97 Date: Sun, 8 Sep 2024 08:53:35 +0900 Subject: [PATCH 3/3] docs: update README --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index dc06835..f3b02c4 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,8 @@ - traditional korean proverbs, more than 4,000 - from https://www.krpia.co.kr/product/main?plctId=PLCT00004626#none -- famous saying (soon) +- quotes, more than 200 (more to be added) + - from https://www.goodreads.com/quotes (soon) - maxim (soon) ---