호기심, 관심사

도서 검색 크롬 확장프로그램 만들기 - 2. 알라딘 API 사

찾아보니 API는 아무나 쓸 수 있는게 아니고 알라딘으로 부터 TTBKey를 발급받아 쿼리문에 포함시켜야 사용이 가능하다.  

 ==> 알라딘 OpenAPI 신청, 사용방법 참고 (http://blog.aladin.co.kr/openapi/category/29154404?communitytype=MyPaper

TTB 란 Thanks To Blogger 의 약자. 예를 들어 본인 블로그에 책 리뷰를 작성하고 알라딘 API 를 사용해서 책 링크를  걸었을때 글을 본 사람이 해당 링크를 통해 알라딘에서 책을 구입하는 경우 수익을 일정부분 나눠주는 제도.

API 는 3가지로 1.일반검색(제목,저자등 검색어로), 2.단독검색(ISBN or 알라딘id), 3.상품검색(베스트,신간 식) 이 있는데 1번 방식으로 하면 될듯.

URL 쿼리 input/output 옵션이 꽤 다양하다.

  • 요청 URL샘플 : http://www.aladin.co.kr/ttb/api/ItemSearch.aspx?ttbkey=TTBKey&Query=aladdin&QueryType=Title&MaxResults=10&start=1&SearchTarget=Book&output=xml&Version=20070901 

<< 검색 요청(Request) 파라미터 스펙 >>
구분 요청변수 변수종류 설명
필수 TTBKey 문자열 부여받은 TTBKey값
Query 문자열 검색어
옵션
(옵션 조정 변수가 없을 경우에는 기본값으로 검색)
QueryType Keyword (기본값) : 제목+저자
Title : 제목검색
Author : 저자검색
Publisher : 출판사검색
검색어 종류
SearchTarget

Book(기본값) : 도서
foreign : 외국도서
Music : 음반
DVD : DVD
Beauty : 화장품
Gift : 기프트
used : 중고샵(도서/음반/DVD 등) 
Movie : 영화정보 
All : 위의 모든 타겟(몰)

검색 대상 Mall
Start 1이상, 양의 정수(기본값:1) 검색결과 시작페이지
MaxResults 1이상 100이하, 양의 정수(기본값:10) 검색결과 한 페이지당 최대 출력 개수
Sort accuracy : 정확도순(기본값)
PublishTime : 출간일
Title : 제목
SalesPoint : 판매량
CustomerRating 고객평점
MyReviewCount :마이리뷰갯수
정렬순서
Cover Big : 큰 크기
Mid(기본값) : 중간 크기
Small : 작은 크기
Mini : 매우 작은 크기
None : 없음
표지크기
CategoryId 양의정수 - 분야의 고유 번호(기본값:0, 전체)
(참고 : 알라딘 모든 분야 카테고리)
특정 분야로 검색결과를 제한함
Output XML(기본값) : REST XML형식
OS : 확장RSS(OpenSearch방식)
JS : JSON방식
출력방법
Partner 문자 파트너코드. 제휴사의 경우 파트너코드 입력으로 제휴사 유효성 체크.
Omitkey 양의정수(기본값:0) Omitkey가 1인경우 결과링크값에 TTBKey가 제외됨.
InputEncoding 문자열(인코딩의 영문이름 - 기본값:utf-8) 검색어의 인코딩 값을 설정. "utf-8"이나 "euc-kr"과 같은 인코딩의 영문이름.
Version 정수형 날짜
(기본값: 20070901이며 20131101도 가능)
검색API의 Version(날짜형식)을 설정. 
20131101의 경우 검색결과 최대 상품수는 200건으로 제약.
CallBack javascript function이름 호출후 불려질 javascript function의 이름을 지정.
output이 js인 경우에 한해 작동됨.
outofStockfilter 품절/절판 등 재고 없는 상품 필터링("1"이 제외 필터) 숫자

<< 검색 응답(Reponse) 결과값 스펙 >> 
필드명 설명 자료형
title 조회결과의 제목 문자열
link 조회결과를 확인할 수 있는 Html페이지의 링크 문자열(URL)
language 검색결과의 언어. 무조건 "ko"가 입력됨 문자열
copyright API제공자의 Copyright 문자열
pubDate 조회시간(GMT기준시) 날짜
totalResults 총 검색 결과 개수 정수형
startIndex 현재 페이지 정수형
itemsPerPage 한 페이지당 출력 결과 개수 정수형
query 요청 쿼리 문자열
version 현재 검색API의 Version 정수형 날짜
searchCategoryId 특정 분야로 검색을 제한한 경우 분야의 고유번호 출력 정수형
searchCategoryName 특정 분야로 검색을 제한한 경우 분야의 이름 출력 문자열
ISBN 해당 아이템의 ISBN(10자리) 숫자
ISBN13 해당 아이템의 ISBN(13자리) 숫자
item < itemId 해당 아이템의 고유한 값(알라딘 내부 KEY값) 숫자
item < category
(출력형식 OS에서만 해당)
'알라딘'이 출력 문자열
item < content:encoded
(출력형식 OS에서만 해당)
바로 사용할 수 있는 HTML이 포함된 간략한 상품 설명 문자열
item < description OS 출력형식: HTML이 없는 상품설명
기타 출력형식: HTML이 포함된 간략한 상품 설명
문자열
item < pubDate
item < dc:date
도서 출간일(GMT기준) 날짜
item < dc:creator
(출력형식 OS에서만 해당)
'aladdin'이 출력 문자열
item < priceStandard 상품 정가 숫자(통화)
item < priceSales 알라딘에서 판매하는 판매가(수시로 변동 가능) 숫자(통화)
item < stockStatus 상품의 재고 상태.
재고 보유 상태에서는 특별한 문자도 들어가있지 않으며 
품절,절판 등의 특별한 상태일때만 문자열이 출력
문자열
item < mileage 상품 구입시 지급되는 마일리지 숫자(통화)
item < cover 상품 표지 URL 문자열(URL)
item < categoryId 상품 대표 분야의 고유번호(알라딘은 복수 분류체계,그 중 대표 분류 하나)(참고 : 알라딘 모든 분야 카테고리) 숫자
item < categoryName 대표 분류의 상위 분류들(분류 히스토리, "<"를 기준으로 나누어져 있음) 문자열
item < publisher 상품의 출판사(제작사) 문자열
item < customerReviewRank 상품에 대해 고객이 부여한 별점(10점만점) 숫자

저자(김충원)로 검색하면 이런 식으로 xml 반환이 된다. ( 확장RSS, JSON 포맷도 지원함 ). To be continued....
 


,
호기심, 관심사

도서 검색 크롬 확장프로그램 만들기 - 1. 시작

 올여름과 가을에 각 5회에 걸쳐 웹어플리케이션 관련 수업을 두번 들었다. 교육이란게 그렇다. 필요해서 선택했고 들을 땐 내 것이 된 것 마냥 이해가 잘 되고 지적포만감이 들기도 한다. 하지만 한 주만 지나면 도루묵 상태로 컴백하기 일쑤다. 

 지난번 수업은 내용도 좋았지만 중간중간 개발자로서 강사가 본인이 느낀 자세와 마인드 이야기가 더 좋았다. 특히 보편적인 프로그램과 개인적인 프로그램에 대한 이야기가 떠오른다. 자기가 필요해서 만든 개인적인 프로그램은 세상에서 자기만 사용할테고, 자기에게만 의미가 있겠지만 그렇기 때문에 프로그램에는 온전히 자기 자신이 들어가 있다. 그래서 100% 온전히 목적과 기능을 이해한 상태에서 작업을 할 수 있고 불필요한 겉치레 기능나 낭비요소도 적다. 

 하지만 보편적인 프로그램. 예를 들어 일로써 만들거나, 불특정 다수를 타겟으로 만드는 것들은 계획대로 진도를 잘 맞춰 만들었다고 해서, 버그가 없다고 해서, 많은 사람이 사용한다고 한다고 해도 뭔가 하나 부족한게 있다. 바로 본인에게 얼마나 의미와 쓰임새가 있는지이다.

 사람마다 다를 수 있겠고 모름지기 개발자라면 본인의 것이 아니더라도 잘 만드는데 당연하다. 하지만 동기부여나 성취감 측면에서 아무래도 Self-Inspired 되서 시작한 것에는 견주기 힘들 것 같다. 개인적인 프로그램이 주변을 통해 입소문의 나 쓰는 이가 늘어나면서 보편적인 프로그램으로 대박이 나는 경우가 많지 반대로 처음부터 보편적인 프로그램을 만들어 대박내겠다고 해서 잘 되는 경우는 드문것 같다.   

 작은 것부터 개인적인 것부터 시작해야 의미와 성취감을 갖기 좋다는 이야기다. 어쨌든 들은 건 다른 귀로 날아가버리고 본건 잠들면 다음날 잊혀지지만 직접 해본건 평생 기억에 남는다고 했던가. 하나 만들어보기로 한다.

 평소에 생각했던 여러 아이디어중 만만해 보이는 것을 골랐다. 읽고 싶은 책들이 있으면 에버노트에 "읽을 책"이라는 노트북 안에 읽을 책들 커버이미지를 넣은 노트들을 만들어 넣는다. 도서관에서 책을 빌릴 때나 서점에서 책을 구매할 때 참고한다. 이후 책을 다 읽으면 후기를 적어 "읽은 책" 이라는 노트북으로 옮겨 넣는다. 


이때 책 커버 이미지를 찾으려면 알라딘 사이트로 가서 도서를 검색해야 되는데, 크롬 익스텐션으로 만들어서 책을 검색하고 이미지를 찾아낸다면 노트에 이미지 넣을 때 편할 것 같다.


,
호기심, 관심사

PHP 맛보기중


PHP를 이용해 웹브라우저에서 폼을 작성하고 등록하면 서버쪽에 저장하고
요약한 내용을 브라우저로 뿌려주는 예제를 짜보던중.

에러가 있는 것도 아니고 타이핑을 잘못한것도 아니고
웹서버가 죽은 것도 아니고 php 서버도 잘 살고 있는데

php 를 거쳐 브라우저에 뿌려야할 내용이 하나도 안나오는 것이다.

결국 찾은 이유는... ㅎㅎ

php 파일을 웹서버 루트디렉토리에 (Bitnami 기준으로 \Bitnami\wampstack-5.6.23-1\apache2\htdocs )  안에 안 넣은 것이 원인. form action 으로 php를 찾는데 웹서버가 해당 php 파일을 못찾는 것은 당연.

책을 넘기다보니 떡하니 나온다.

"PHP 스크립트는 웹서버 위에 올라가야 합니다. 그렇지 않으면 실행할 수 없어요."
PHP 스크립트를 로컬 컴퓨터에서 만들고 수정하는 것은 전혀 문제가 되지 않습니다. 하지만 실행을 위해서 PHP스크립트 파일을 웹서버 위에 올려야 하지요. PHP파일은 웹 서버 위에서 종종 HTML 파일과 같은 곳에 위치합니다. PHP 스크립트를 웹 서버에 올리는 것은 어려운 것이 아닙니다. 웹 페이지가 접근할 수 있는 웹 서버와 특정 폴더에 파일을 업로드하면 되니까요....


,
  [ 1 ]  

최근 댓글

최근 트랙백

알림

이 블로그는 구글에서 제공한 크롬에 최적화 되어있고, 네이버에서 제공한 나눔글꼴이 적용되어 있습니다.

태그

링크

카운터

Today :
Yesterday :
Total :