Rails5의 API 모드를 터치해 보십시오.
6875 단어 Rails
하지만 MVC의 V는 필요 없다.
이럴 때는 API 모드!
Rails 기반 API 전용 애플리케이션
-api를 사용하여 Rails 생성
$ rails new my-service --api
$ cd my-service
$ bundle install
$ rails s
액세스http://localhost:3000/이 화면을 보니까 마음이 놓이네요.
JSON으로 돌아가는 API 만들기
그럼 제가 user라는 자원을 만들어 볼게요.
scaffold 사용
scaffold는 자동으로 controller와 모델을 생성하는 기능입니다
열이 없으면 그거예요. 그래서 남e:string 정도 먼저 해야 돼요.
$ rails g scaffold user name:string
$ rails db:migrate
$ rails s
서버를 시작한 후 터미널 등록 사용자를 다시 엽니다name 마이클 잭슨에 대한 찬사Lion Stout
$ curl --request POST --url http://localhost:3000/users/ --data 'user%5Bname%5D=Lion%20Stout'
다음에 다음 URL을 방문해 보세요(users는 복수 형식이므로 주의)
잘 Lion Stout씨 등록!
(Chrome 확장JSON formatter
controller
이렇게 자동 생성
REST에 맞춰서 CRUD를 만드는 방법인 것 같아요.
render json: @users
에서 JSON의 응답을 반환합니다.class UsersController < ApplicationController
before_action :set_user, only: [:show, :update, :destroy]
# GET /users
def index
@users = User.all
render json: @users
end
# GET /users/1
def show
render json: @user
end
# POST /users
def create
@user = User.new(user_params)
if @user.save
render json: @user, status: :created, location: @user
else
render json: @user.errors, status: :unprocessable_entity
end
end
# PATCH/PUT /users/1
def update
if @user.update(user_params)
render json: @user
else
render json: @user.errors, status: :unprocessable_entity
end
end
# DELETE /users/1
def destroy
@user.destroy
end
private
# Use callbacks to share common setup or constraints between actions.
def set_user
@user = User.find(params[:id])
end
# Only allow a trusted parameter "white list" through.
def user_params
params.require(:user).permit(:name)
end
end
테스트
이것은 scaffold의 기능으로 시험도 자동으로 생성할 수 있다
$ rails t
Running via Spring preloader in process 20343
Run options: --seed 58286
# Running:
.....
Finished in 0.832185s, 6.0083 runs/s, 8.4116 assertions/s.
5 runs, 7 assertions, 0 failures, 0 errors, 0 skips
참고 자료
Reference
이 문제에 관하여(Rails5의 API 모드를 터치해 보십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kumagaias/items/e2b427124e1efd0eb122텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)