Log In
|
Sign Up
Search
테이블 select 결과를 REST API로 제공하기
Writer
안동환
Description
테이블에 저장된 데이터를 검색하기 위해 /search REST API를 사용할 수 있다. 그런데 고객의 요청에 의해 검색 REST API의 출력 형식을 변경해야 되는 경우가 생길 수 있다. 그런 경우에는, 모듈 안에서 select 구문으로 데이터를 가져온 뒤, 원하는 형식에 맞게 만들어서 반환하면 된다.
custom.k
string custom_search(dict argv) as rest "GET /ksm/custom/search" { string keyword = string(argv["keyword"]); int limit = int(argv["limit"]); string where_exp; sprintf(where_exp, "title='%s' allword", keyword); dict d, d_row; list
rows; list
title_list; dict d_out; use volume vol_blog; select title from tab where where_exp pagelength=limit format=json; d.from(KQL_STATEMENT_OUT); rows = d["result"]; for d_row in rows { title_list.append(d_row["title"]); } d_out["titles"] = title_list; return d_out.to('"'); }
모듈 생성
[dhahn@xrs bin]$ ./kvm Welcome to KVM (Linux-2.6.18-92.el5-x86_64 2018-06-19 13:52:01). Type 'help' for help. Commands end with ';'. Copyright (c) 1999-2018 Konan Technology, Inc. kvm> generate bytecode ksmcustom.mod custom.k; 생성한 ksmcustom.mod 모듈은 data 디렉터리로 옮기고, 엔진을 재기동한다.
테스트
[dhahn@xrs bin]$ curl "http://127.0.0.1:7577/ksm/custom/search?keyword=사람&limit=3" {"titles":["나의 환희. 널 알던 모든 사람들이 널 사랑했단다.", "코란도 투리스모 주먹으로 눈물이 피케이다 뒤섞여 사람들", "자산설계,재무설계,재테크, 재무상담, 아는사람이 가입해준 내보험 진짜 좋은보험인가? 알려드립니다."]}
Tag
select REST
Module Name
Attachments
Comments
Save
Save
Cancel
Save
Cancel
Warning
Login