안수찬 블로그

LinksBy.Me 서비스 API 1차 개발 완료

Introduction

안수찬 @dobestan

안수찬 @dobestan

서울대학교에서 컴퓨터공학을 전공하고, 오랜 기간 서비스 기획 및 개발을 해 왔습니다. 이러한 전문성을 인정받아 미래부 소프트웨어 마에스트로에 선정된 바 있습니다. 현재는 모바일 방송국, 퍼스트캔버스에서 컨텐츠로 새로운 가치를 그리고 있습니다. 나는 안수찬이다. 그러므로 나는 할 수 있다. me@ansuchan.com


LinksBy.Me 서비스 API 1차 개발 완료

Posted by 안수찬 @dobestan on .
Featured

LinksBy.Me 서비스 API 1차 개발 완료

Posted by 안수찬 @dobestan on .

개발을 처음 시작했을 때 목표로 한 서비스가 있다. "개발을 시작한지 100일 만에 한국형 bit.lygoo.gl을 만들자." 결론적으로는 실패했지만 항상 마음에 남아 2014년 5월 나 혼자 사용할 수 있는 링크공유 서비스 공유하라 안수찬를 개발했고 현재 사용중이다.

최근에 티티엘소프트에서 PHP - Python을 이용한 서비스를 보면서 API 개발에 욕심이 생겼다. 실습해볼겸 Rails API로 무엇을 만들수 있을까 하다가 한국형 링크공유 서비스 LinksBy.Me API를 개발했다. 개발 시간은 2시간 30분 정도 소요되었고 현재는 API만 개발된 상태라 curl을 이용해서만 이용할 수 있다.

향후 업데이트 일정

웹 버전은 9월 이전으로 런칭할 예정이다. 웹 클라이언트 프레임워크인 Angular.JS를 이용해서 개발할 예정이다. 웹 버전이 제작되기 이전에 일부 사용자들에 한해서 Apple Script를 이용해 Alfred Plugin를 제작하여 배포할 예정이다.

개발 이슈

레일즈에서 제공하는 기능을 이용하여 api라는 subdomain을 통해서만 접속이 가능하도록 했다. ( 예, api.linksby.me/links) HTTP Basic Authentication을 사용할까 하다가 어차피 개발하는거 조금 더 나은 방식으로 개발하보자는 생각에 HTTP Token Authentication을 사용했다.

각각의 User는 유일한 Token을 갖는다. ( User 생성 시점에 생성된다. 추후에 웹 버전에서는 Regenerate 할 수 있도록 기능을 추가할 예정이다. ) API에 Request를 보낼 때 Request HeaderAuthorization Token을 포함시켜 요청해야만 정상적인 Response를 받을 수 있다.

$ curl http://api.linksby.me/links
Bad credentials  
$ curl http://api.linksby.me/links -H "Authorization: Token token=553feb855340d025ee0b48df6b7a0801" 

[{"id":1,"user_id":1,"original":"'http://share.ansuchan.com'","shorten":"vOu3_aaq","created_at":"2014-07-02T13:12:19.542Z","updated_at":"2014-07-02T13:12:19.542Z"},{"id":2,"use
r_id":1,"original":"http://share.ansuchan.com","shorten":"MH4FseaG","created_at":"2014-07-02T13:13:55.552Z","updated_at":"2014-07-02T13:13:55.552Z"}]  

POST Request를 통해서 새로운 링크를 생성할 수 있다. 생성이 정상적으로 완료되면 Response Status : 200을 반환하고 사용자가 헤더에 명시한 Content_type으로 새롭게 생성된 Shorten URL을 반환한다. ( 기본값은 application/json으로 되어 있다. )

일반적으로 POST Method에 대한 결과로 204 ( No Content )로 응답하는 것에 반해서 줄여진 링크를 응답하도록 했다. 향후 Alfred Plugin 개발 시에 링크 생성 직후 클립보드에 줄여진 링크를 저장하기 위해서 이렇게 개발했다.

$ curl http://api.linksby.me/links -X POST \
-H "Authorization: Token token=553feb855340d025ee0b48df6b7a0801" \
-d "link[original]=http://blog.ansuchan.com"

http://linksby.me/dobestan/_TwDiVwU

임의의 사용자는 http://linksby.me/USER_NAME/SHORTEN으로 접속하면 original link로 redirect 된다.

$ curl http://linksby.me/dobestan/_TwDiVwU
http://blog.ansuchan.com  
안수찬 @dobestan

안수찬 @dobestan

https://ansuchan.com/

서울대학교에서 컴퓨터공학을 전공하고, 오랜 기간 서비스 기획 및 개발을 해 왔습니다. 이러한 전문성을 인정받아 미래부 소프트웨어 마에스트로에 선정된 바 있습니다. 현재는 모바일 방송국, 퍼스트캔버스에서 컨텐츠로 새로운 가치를 그리고 있습니다. 나는 안수찬이다. 그러므로 나는 할 수 있다. me@ansuchan.com

View Comments...