爱上 ruby on rails 二: 设计api及分页

2022-08-20  本文已影响0人  RickyWu585

设计api

  1. 发送验证码
  1. 登录登出
  1. 当前用户
  1. 记账数据
  1. 标签
  1. 打标签:记录标签和用户的关系,用中间缓存,不互相影响

代码创建

  1. routes.rb: namespace代表前缀路径
Rails.application.routes.draw do
  namespace :api do
    namespace :v1 do
      # /api/v1
      resources :validation_codes
    end
  end
end
  1. 运行bin/rails routes:自动生成一系列restful api,如果只想取其中某个api,则加 only 即可,想排除某个api,用exclude
Rails.application.routes.draw do
  namespace :api do
    namespace :v1 do
      # /api/v1
      resources :validation_codes, only: [:create]
      resource :session, only: [:create, :destroy]
      resource :me, only: [:show]
      resources :items
      resources :tags
    end
  end
end
  1. bin/rails g model ... :示例bin/rails g model item user_id:integer amount:integer notes:text tags_id:integer happen_at:datetime
  2. 创建对应controller,这里以items为示例,执行命令:bin/rails g controller Api::V1::Items 会自动依据目录创建
  3. bin/rails db:migrate
  4. 尝试做一下分页:利用库kaminari或者pagy
class Api::V1::ItemsController < ApplicationController
  def index
    items = Item.page(params[:page]).per(params[:number])
    render json: { resources: items }
  end

  def create
    item = Item.new amount: 1
    if item.save
      render json: { resource: item }
    else
      render json: { errors: item.errors }
    end
  end
end
上一篇 下一篇

猜你喜欢

热点阅读