Начнем с настройки бэкенда. Я предполагаю, что у вас есть базовые знания о концепциях кодирования, вы знаете, как использовать интерфейс командной строки, у вас установлен Ruby на вашем компьютере, и вы хорошо с ним знакомы. Поехали!
Давайте начнем новый проект Rails. Нам понадобятся только функции API, а для базы данных — Postgres.
$ mkdir vue_rails_express_apps $ cd vue_rails_express_apps $ rbenv local 3.0.1 $ rails new app_name_of_your_choice — api — database=postgresql $ cd app_name_of_your_choice
Затем добавьте gem ‘bcrypt’
в Gemfile — эта библиотека понадобится нам в нашем проекте — затем запустите $ bundle install
.
Настройка завершена, давайте сделаем нашу первую миграцию. Начнем с создания базы данных и включения pgrypto
. Модуль pgcrypto
— это криптографическое расширение, предоставляющее ряд хэширующих и криптографических функций.
$ rails db:create $ rails g migration EnablePgCrypto
Файлы миграции находятся в папке db/migrate
. Откройте сгенерированный файл миграции и внутри метода change
введите enable_extension(‘pgcrypto’)
.
Для запуска миграции используйте команду $ rails db:migrate
. Хороший!
Делаем первую модель. Нашему сервису нужны пользователи!
$ rails g model User
Пара файлов была создана с помощью этой команды. Наиболее важными являются миграция и файл модели. Внутри файла user.rb
мы можем определить некоторые свойства нашей модели. Мы не хотим хранить пароли в открытом виде, поэтому определим безопасный пароль. Модель также является местом, где мы можем проверять атрибуты, отражающие столбцы в таблице пользователей.
Внутри файла миграции таблицы пользователей нам нужно указать столбцы и их типы. Использование UUID (универсальный уникальный идентификатор) вместо ID является хорошей практикой, так как это гарантирует, что идентификатор не будет существовать в другой строке в наша система.
Запустите rails db:migrate
, затем откройте консоль rails rails c
и создайте нашего первого пользователя [1] pry(main)> User.create!(email: ‘[email protected]’, password: ‘qwerty’, username: ‘dummy_99’)
.
Прохладный! Теперь мы можем начать работать над контроллером.
Прежде чем мы приступим к реализации методов CRUD, давайте взглянем на ApplicationController
. ApplicationController
— это особый класс, поскольку все остальные классы контроллеров наследуются от него. Лучше всего поставить специальный метод, который избавит нас от ActiveRecord::RecordNotFound
ошибок.
#app/controllers/application_controller.rb class ApplicationController < ActionController::API rescue_from ActiveRecord::RecordNotFound, with: :record_not_found def record_not_found render json: “Nothing’s here”, status: :not_found end end
Теперь мы готовы создать контроллер для пользователей: $ rails g controller Users
. Результатом этой команды является файл UsersController
, расположенный в папке app/controllers/users_controller.rb
. Стоит различать два частных метода — один для установки пользователя, которого мы собираемся изменить, и один для установки сильных параметров (что позволяет нам указать, какие параметры следует разрешить для дальнейшей обработки).
Последним шагом будет настройка наших маршрутов. В файле config/routes.rb
нам нужно указать пути для роутера, чтобы корректно направлять входящие запросы на соответствующий контроллер. Поскольку у нас есть модель пользователя, это так же просто, как просто добавить resources :users
в файл маршрутов.
Законченный! Теперь мы можем запустить наш внутренний сервер локально на порту по нашему выбору:
$ rails s -p 3005
На очереди: API-шлюз с Express.js
Привет, меня зовут Крис, я инженер-программист. Это самый первый урок, который я сделал, и я знаю, что, возможно, я еще не очень хорош в обучении. Я попытался сделать этот урок, чтобы показать тему шаг за шагом, но я мог пропустить некоторые тривиальные вещи. Если вы с чем-то застряли, сообщите мне об этом в комментариях.
Если этот урок решил вашу проблему и/или спас вам жизнь, вы можете угостить меня чашечкой кофе — просто нажмите огромную кнопку ниже. Здоровья!