Nuxt.js × Créer une application en mode API Rails

Chose que tu veux faire

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

Faites le devant avec Nuxt.js

--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)

Changez le numéro de port nuxt en 8000

Page officielle

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,
},

Lancer un hôte local

$ 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/

Créer un serveur API avec Rails

//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 et un contrôleur

//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

Paramètres de routage

--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

Configurer PostsController

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

Essayez de publier avec Postman

Postman Article de référence sur l'utilisation

Vérifiez que vous pouvez publier dans la console Rails

//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

Nuxt.js × Créer une application en mode API Rails
[Rails] Créer une application
[Rails] Utiliser des cookies en mode API
Créer une fonction d'authentification dans l'application Rails à l'aide de devise
Implémenter la fonction d'application dans Rails
Lancer l'application Rails localement en mode production (édition du serveur API)
[Rails] Créez un bot d'écho à l'aide de l'API de messagerie LINE.
Préparation à la création de l'application Rails
Créer une nouvelle application avec Rails
Créez une alternative à l'API Stream facile à étendre
API Rails
Débutant a créé un portfolio avec Ruby on Rails
Créez une API de tableau d'affichage avec certification et autorisation dans Rails 6 # 6 show, créez une implémentation
Créez une application de bureau Windows dans Ruby et distribuez un fichier exécutable (.exe)!
Que faire si l'installation de ffi échoue lors du lancement d'une application dans Rails
Créez une API JSON prenant en charge le cryptage RSA avec wicket
Créer une application en spécifiant la version de Rails
Comment créer facilement un pull-down avec des rails
Rails6.0 ~ Comment créer un environnement de développement respectueux de l'environnement
Rendre le mode API Rails compatible avec l'authentification Cookie (session)
J'ai essayé de développer une application en 2 langues
Créer un site EC avec Rails5 ⑤ ~ Modèle client ~
Créer un site EC avec Rails 5 ⑩ ~ Créer une fonction de commande ~
Comment installer Docker dans l'environnement local d'une application Rails existante [Rails 6 / MySQL 8]
Group_by dans Rails
[Introduction] Créer une application Ruby on Rails
Implémenter la fonction de recherche de publication dans l'application Rails (méthode where)
Créer un site EC avec Rails5 ⑦ ~ Adresse, modèle de genre ~
Créer un site EC avec Rails 5 ⑨ ~ Créer une fonction de panier ~
Créer un site EC avec Rails5 ④ ~ En-tête et pied de page ~
Créez un site EC avec Rails5 ⑥ ~ entrée de données de départ ~
J'ai eu une erreur "méthode non définie` create" "dans RSpec
Rails6 J'ai essayé d'introduire Docker dans une application existante
Environnement Build Rails (API) x MySQL x Nuxt.js avec Docker
[Rails] Comment afficher les images dans la vue
Créer une authentification par clé API pour l'API Web dans Spring Security