Créer un front avec Nuxt.js et API avec Rails Publier avec Postman pour l'API créée
** Environnement de développement ** ruby 2.6.5 Rails 6.0.3.4 node v14.7.0 yarn 1.22.4
--Créez une application frontale avec le nom ʻapp` dans le répertoire post-app --Axios est sélectionné pour être installé lors de la création d'un projet
// post-Créez un répertoire appelé app
$ mkdir post-app
$ cd post-app
//Créer une application avec nuxt
$ npx create-nuxt-app app
//Sélectionnez divers paramètres
? Project name: (app)
└ Appuyez sur le bouton Enter tel quel
? Programming language: (Use arrow keys)
❯ JavaScript
TypeScript
└ Sélectionnez JavaScript
? Package manager:
❯ Yarn
Npm
└ Sélectionnez le fil
? UI framework: (Use arrow keys)
❯ None
Ant Design Vue
Bootstrap Vue
Buefy
Bulma
Chakra UI
Element
Framevuerk
iView
Tachyons
Tailwind CSS
Vuesax
Vuetify.js
└ Sélectionnez Aucun
? Nuxt.js modules:
❯◉ Axios
◯ Progressive Web App (PWA)
◯ Content
└ Sélectionnez Axios (appuyez sur la touche espace)
? Linting tools: (Press <space> to select, <a> to toggle all, <i> to invert selection)
❯◯ ESLint
◯ Prettier
◯ Lint staged files
◯ StyleLint
└ Appuyez sur le bouton Enter tel quel
? Testing framework: (Use arrow keys)
❯ None
Jest
AVA
WebdriverIO
└ Appuyez sur le bouton Enter tel quel
? Rendering mode:
Universal (SSR / SSG)
❯ Single Page App
└ Sélectionnez une application de page unique
? Deployment target: (Use arrow keys)
❯ Server (Node.js hosting)
Static (Static/JAMStack hosting)
└ Sélectionnez un serveur
? Development tools:
❯◉ jsconfig.json (Recommended for VS Code if you're not using typescript)
◯ Semantic Pull Requests
└ jsconfig.Sélectionnez json (appuyez sur la touche espace)
Cité du fonctionnaire ▼
js:app/nuxt.config.js
export default {
server: {
port: 8000, //Défaut: 3000
host: '0.0.0.0' //Défaut: localhost
}
//Autres réglages
}
** Description réelle ▼ **
js:app/nuxt.config.js
server: {
port: 8000,
},
$ cd app
$ yarn dev
//Lorsque ce qui suit s'affiche, http://localhost:8000/Accessible à
│ Nuxt.js @ v2.14.7 │
│ │
│ ▸ Environment: development │
│ ▸ Rendering: client-side │
│ ▸ Target: server │
│ │
│ Listening: http://localhost:8000/
//Mode API, DB crée une application de rails avec MySQL
$ rails new api --api -d mysql
//Faire un DB
$ rails db:create
Created database 'api_development'
Created database 'api_test'
//Créer un modèle de poteau
$ rails g model Post title:string body:text
//émigrer
$ rails db:migrate
//Créez un contrôleur de messages dans le répertoire v1 dans le répertoire api
//Ignorer la génération automatique du répertoire de test
$ rails g controller api::v1::posts --skip-test-framework
--Créez un routage appelé / api / v1 / posts
api/config/routes.rb
Rails.application.routes.draw do
namespace :api do
namespace :v1 do
resources :posts
end
end
end
api/app/controllers/api/v1/posts_controller.rb
class Api::V1::PostsController < ApplicationController
before_action :set_post, only: [:show, :update, :destroy]
def index
posts = Post.order(created_at: :desc)
render json: { status: 'SUCCESS', message: 'Loaded posts', data: posts }
end
def show
render json: { status: 'SUCCESS', message: 'Loaded the post', data: @post }
end
def create
post = Post.new(post_params)
if post.save
render json: { status: 'SUCCESS', data: post }
else
render json: { status: 'ERROR', data: post.errors }
end
end
def destroy
@post.destroy
render json: { status: 'SUCCESS', message: 'Deleted the post', data: @post }
end
def update
if @post.update(post_params)
render json: { status: 'SUCCESS', message: 'Updated the post', data: @post }
else
render json: { status: 'SUCCESS', message: 'Not updated', data: @post.errors }
end
end
private
def set_post
@post = Post.find(params[:id])
end
def post_params
params.permit(:title, :body)
end
end
Postman Article de référence sur l'utilisation
//Lancez la console
$ rails c
//Vérifiez le message
irb(main):001:0> Post.first
C'est OK si le même contenu que Postman est affiché ci-dessus
Recommended Posts