Rails에서 JSON을 반환하는 간단한 WebAPI 만들기
비망록입니다.
Ruby on Rails에서 간단한 JSON을 반환하는 WebAPI를 만들려고합니다. 컨트롤러에 정의한 json을 돌려주는 단순한 api (정말이면 db에서 꺼낸 데이터라든지?)입니다. 아래와 같이 json을 정의한다.
personal = {
"smile face":[
{
"url":"http://localhost:3333/face/smile/smile1.img"
},
{
"url":"http://localhost:3333/face/smile/smile2.img"
}
]
}
사용법
구체적으로는. 얼굴, 화난 얼굴, 울고있는 얼굴, 이미지의 url을 반환하는 api입니다. 물론 웹에서도 액세스할 수 있어요. 이번에는 파라미터 등의 지정에 의한 복잡한 api 조작은 없다. 어쨌든 api를 두드리고 결과를 받는다.
$ curl -i http://localhost:3333/face/angry
$ curl -i http://localhost:3333/face/sad
$ curl -i http://localhost:3333/face/smile
방법
우선, rails 프로젝트를 만든다.
$ rails new api-test
프로젝트로 이동하여
$ cd /Users/hujisawa/Desktop/api-test
프로젝트로 이동하여 컨트롤러와 뷰와 경로를 만듭니다. 이번에는 json을 반환하기 때문에 뷰는 필요 없기 때문에 나중에 지웁니다.
$ generate controller Face smile sad angry
구현
아래와 같이 기술하는 것으로, json을 돌려줄 수가 있다. render를 모르면 구구한다. personal는 만들어 이다 json 자료.
render :json => personal
완성
face_controller.rb
class FaceController < ApplicationController
def smile
personal = {
"smile face":[
{
"url":"http://localhost:3333/face/smile/smile1.img"
},
{
"url":"http://localhost:3333/face/smile/smile2.img"
}
]
}
render :json => personal
end
def sad
personal = {
"sad_face":[
{
"url":"http://localhost:3333/face/smile/sad1.img"
},
{
"url":"http://localhost:3333/face/smile/sad2.img"
}
]
}
render :json => personal
end
def angry
personal = {
"angry_face":[
{
"url":"http://localhost:3333/face/smile/angry1.img"
},
{
"url":"http://localhost:3333/face/smile/angry2.img"
}
]
}
render :json => personal
end
end
보기는 지우개
이번에는 html을 사용하지 않기 때문에 이들은 지운다.
웹에서 액세스
api를 두드리는
$ curl -i http://localhost:3333/face/smile
HTTP/1.1 200 OK
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Download-Options: noopen
X-Permitted-Cross-Domain-Policies: none
Referrer-Policy: strict-origin-when-cross-origin
Content-Type: application/json; charset=utf-8
ETag: W/"12078d41e23365917dee4fe08ad8508e"
Cache-Control: max-age=0, private, must-revalidate
X-Request-Id: 764425e8-8ed1-4aa4-a781-b0b98e8b19fd
X-Runtime: 0.005404
Transfer-Encoding: chunked
{"smile face":[{"url":"http://localhost:3333/face/smile/smile1.img"},{"url":"http://localhost:3333/face/smile/smile2.img"}]}f
참고
JSON/XML 형식으로 출력
Reference
이 문제에 관하여(Rails에서 JSON을 반환하는 간단한 WebAPI 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rh_/items/658285f57f39f4b040b4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
api를 두드리는
$ curl -i http://localhost:3333/face/smile
HTTP/1.1 200 OK
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Download-Options: noopen
X-Permitted-Cross-Domain-Policies: none
Referrer-Policy: strict-origin-when-cross-origin
Content-Type: application/json; charset=utf-8
ETag: W/"12078d41e23365917dee4fe08ad8508e"
Cache-Control: max-age=0, private, must-revalidate
X-Request-Id: 764425e8-8ed1-4aa4-a781-b0b98e8b19fd
X-Runtime: 0.005404
Transfer-Encoding: chunked
{"smile face":[{"url":"http://localhost:3333/face/smile/smile1.img"},{"url":"http://localhost:3333/face/smile/smile2.img"}]}f
참고
JSON/XML 형식으로 출력
Reference
이 문제에 관하여(Rails에서 JSON을 반환하는 간단한 WebAPI 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rh_/items/658285f57f39f4b040b4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ curl -i http://localhost:3333/face/smile
HTTP/1.1 200 OK
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Download-Options: noopen
X-Permitted-Cross-Domain-Policies: none
Referrer-Policy: strict-origin-when-cross-origin
Content-Type: application/json; charset=utf-8
ETag: W/"12078d41e23365917dee4fe08ad8508e"
Cache-Control: max-age=0, private, must-revalidate
X-Request-Id: 764425e8-8ed1-4aa4-a781-b0b98e8b19fd
X-Runtime: 0.005404
Transfer-Encoding: chunked
{"smile face":[{"url":"http://localhost:3333/face/smile/smile1.img"},{"url":"http://localhost:3333/face/smile/smile2.img"}]}f
JSON/XML 형식으로 출력
Reference
이 문제에 관하여(Rails에서 JSON을 반환하는 간단한 WebAPI 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/rh_/items/658285f57f39f4b040b4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)