iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 16
2
Elastic Stack on Cloud

後端碼農程序猿,來寫on cloud是不是搞錯了什麼,俺想耕田呀系列 第 16

再不耕田受不了啦!!從這篇開始造飛機,讓農夫們都能體驗天上飛的感覺吧!!(4)spring boot & Elastic on Cloud :let's get ALL && Restful

  • 分享至 

  • xImage
  •  

Restful API還是不熟的銅學請點我,好文,收好好嗎?

好的,開篇就是個引用,朋友問我說Restful是啥?
我回我前面不是有貼連接了?這懶人居然連找都懶的找...

這邊簡單說說吧

Restful 的超懶一句話

  1. GET:不干涉資料庫,僅做查詢
  2. POST:干涉資料庫檔案,通常傳入"BO" (Business Object)
  3. PUT:有些公司與POST混着用一般擁有id拿去新增或修改一筆資料
  4. PATCH:通常拿來更新資料,蠻少公司用的,更少同時出現PUT/PATCH
  5. DELETE:刪除,如果看不懂,可能要先去補英文,再來認真學才是真的

恩恩,既然大家都說增刪改查(CRUD)
那麼就一個個來吧

今天來把上次建的INDEX(it_help)所有資料拉出來

同樣地階層式架構起手式:Controller

@GetMapping
public List<UserInfo> findAll() throws Exception {
    return userInfoService.findAll();
}

再來Service:這次是希望讓es的調整與邏輯封裝起來,因此才寫在DAO,其實一般來說是不會這樣寫的

public List<UserInfo> findAll() throws IOException {
    return userInfoDAO.findAll();
}

最後複雜的DAO<通常這邊會用泛型去寫入index與實體類,但爲了淺顯易懂就直接傳值了>

public List<UserInfo> findAll() throws IOException {
    //建立搜尋請求
    SearchRequest searchRequest = buildSearchRequest(INDEX);
    SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
    //es封裝查詢語句
    searchSourceBuilder.query(QueryBuilders.matchAllQuery());
    searchRequest.source(searchSourceBuilder);
    return getSearchResult(client.search(searchRequest, RequestOptions.DEFAULT));
}

private SearchRequest buildSearchRequest(String index) {
    SearchRequest searchRequest = new SearchRequest();
    searchRequest.indices(index);
    return searchRequest;
}

/**
 * 將查詢返回勞資要轉變爲實體後回傳
 */
 private List<UserInfo> getSearchResult(SearchResponse response) {
        SearchHit[] searchHit = response.getHits().getHits();
        List<UserInfo> userInfoList = new ArrayList<>();
        for (SearchHit hit : searchHit) {
            userInfoList
                    .add(objectMapper
                            .convertValue(hit
                                    .getSourceAsMap(), UserInfo.class));
        }
        return userInfoList;
    }

那麼上次再寫完文章後偷偷塞了幾筆資料來執行看看吧,看起來一摸一樣呢~ (豈不廢話??)

好咧,明天來寫寫怎麽依照name辣個欄位來搜尋記錄吧~
要準備開始正職務農了


對於文章中的任何用詞與專業字或都可以在下面留言提問

梗圖看不懂也行

蔽農會帶着謙卑爲懷的心情竭盡所能回覆與說明的


上一篇
再不耕田受不了啦!!從這篇開始造飛機,讓農夫們都能體驗天上飛的感覺吧!!(3.5)spring boot & Elastic on Cloud : let's FIX 400 bad request
下一篇
再不耕田受不了啦!!從這篇開始造飛機,讓農夫們都能體驗天上飛的感覺吧!!(5)spring boot & Elastic on Cloud :get data by ID
系列文
後端碼農程序猿,來寫on cloud是不是搞錯了什麼,俺想耕田呀32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言