committeeを利用してOpenAPI Specのスキーマ定義とAPIの挙動の差分を検知する
REST APIを開発するにあたり、OpenAPI Specification(OpenAPI 3.0以前でいうところのSwagger Specification)をAPIの仕様書として利用している方は多いのではないでし…
バックエンドREST APIを開発するにあたり、OpenAPI Specification(OpenAPI 3.0以前でいうところのSwagger Specification)をAPIの仕様書として利用している方は多いのではないでし…
RubyREST APIのテストコードにレスポンスボディの検証を追加することで、レスポンスボディに修正が加わったことを機械的にチェックできます。 今回はRSpecでREST APIのレスポンスボディを検証する方法について紹介しま…
Ruby外部APIを利用したメソッドのテストコードを書く際、APIとの連携方法がテストのスコープ外になることがあります。 たとえば『API経由で受け取ったデータを正しく加工できているか』をテストする場合です。 この時のテストの関…
活動報告先日、技術評論社のSoftware Design 2020年12月号に寄稿させていただきました。技術商業誌への寄稿は今回が初めてです。 僕は『第1特集 Dockerアプリケーション開発実践ガイド』という4章構成の特集の第…
Ruby【Ruby】faradayを利用した外部API連携クラスの作成手順の記事で、Faradayを利用した外部APIとの連携方法について紹介しました。 外部APIを利用したロジックのテストコードでは、実際のAPIを利用するので…
Rubyアプリケーション開発をするにあたり、外部サービスとAPI連携を行う場合があります。 前回はHTTP通信を行うRubyの標準ライブラリであるnet/httpを利用した外部APIとの連携方法について紹介しました。 今回はHT…
Rubyアプリケーション開発をするにあたり、外部サービスとAPI連携を行う場合があります。 RubyではHTTP通信を行う標準ライブラリとしてnet/httpが用意されています。 今回はnet/httpを利用して、API経由で外…
Rubyデータ不整合が発生した時や既存のカラムの値を変更したい時など、データを手動で更新しなければいけません。 本番データを直接操作することになるため、手動更新は慎重に行う必要があります。 今回はRuby on Railsアプリ…
バックエンドSwaggerを利用することでREST APIの仕様をドキュメント化できます。 SwaggerではREST APIの仕様をドキュメントしたファイルをSwagger Specと呼びます。 Swagger UIとはSwagg…
インフラAPIモードで作成したRails 6と、MySQL 8を組み合わせたDocker環境の構築手順について紹介します。 複数人でもスムーズに開発ができるようにするためリモートリポジトリからcloneしてきたらdocker-c…
バックエンドSwaggerを利用することでREST APIの仕様を文章化できます。 今回はREST APIの仕様書であるSwagger Specの内容をSwagger UI、Swagger Editorに反映させる方法について紹介し…
インフラこんにちは。@nishina555です。 今回はRails 6とMySQL 8を組み合わせたWebアプリケーションのDocker環境を構築する手順について紹介します。 Rails 6からwebpackerが標準でインスト…
シェルこんにちは。Enjoy IT Life管理人の@nishina555です。 aliasはコマンドベースの作業を効率化してくれる便利な機能です。 特に、長くなりがちなdockerコマンドや、利用頻度の高いgitコマンドに関…
JavaScriptこんにちは。Enjoy IT Life管理人の@nishina555です。 前回、『【Nuxt】SSR・SSG・SPAにおける『nuxt build』と『nuxt generate』の実行結果の違いまとめ』で、Nuxtで…
JavaScriptこんにちは。Enjoy IT Life管理人の@nishina555です。 NuxtにはSSR(Server Side Rendering)、SSG(Static Site Generator)1、SPA(Single …
HTML/CSSこんにちは。Enjoy IT Life管理人の@nishina555です。 前回レスポンシブな横並びレイアウトをCSS Flexboxで実装する方法で、画面幅に応じてFlexboxを変化させることで横並びのレイアウトをレ…
HTML/CSSこんにちは。Enjoy IT Life管理人の@nishina555です。 前回、CSS Flexboxによる中央寄せ横並びレイアウトの実装3パターン比較で『中央寄せ横並びのレイアウト』をFlexboxで実装する方法につ…
HTML/CSSこんにちは。Enjoy IT Life管理人の@nishina555です。 CSS FlexboxとはCSS 3から導入されたレイアウトモジュールです。正式名称は『CSS Flexible Box Laout』です。 F…
HTML/CSSこんにちは。Enjoy IT Life管理人の@nishina555です。 widthの最短・最長を指定できるmin-width・max-widthはレスポンシブな画面を作成する際によく使われるCSSプロパティです。 今…
HTML/CSSこんにちは。Enjoy IT Life管理人の@nishina555です。 CSSで要素の中央寄せをする方法にはいくつかありますが、その中でもmargin: 0 autoとtext-align: centerを利用する機…
Rubyこんにちは。Enjoy IT Life管理人の@nishina555です。 前回、【Rails】asset_syncを利用してCloudFront + S3からアセットファイルを配信するでasset_syncの利用方法に…
Rubyこんにちは。Enjoy IT Life管理人の@nishina555です。 Railsアプリケーションで利用されるアセットファイルは、デフォルトの設定ではアプリケーションサーバに配置されています。 今回はアセットファイル…
インフラこんにちは。Enjoy IT Life管理人の@nishina555です。 Webサイトを作成する方法にはいくつかありますが、サーバーをレンタルする方法が一般的です。 しかし サーバーサイドの動的処理が不要な場合はサーバ…
Rubyこんにちは。Enjoy IT Life管理人の@nishina555です。 PumaとはRails(Ruby/Rackアプリケーション)のWebサーバーです。 Pumaを起動することでHTTPリクエストがさばけるようにな…
インフラこんにちは。Enjoy IT Life管理人の@nishina555です。 前回、CodeDeployを利用してECS FargateをBlue/GreenデプロイするでCodeDeployを利用したBlu/Greenデ…
インフラこんにちは。Enjoy IT Life管理人の@nishina555です。 CircleCIの実行結果をSlackに通知するにはアプリの連携だけでなく、CircleCIの設定ファイルを編集する必要があります。 設定ファイ…
インフラこんにちは。Enjoy IT Life管理人の@nishina555です。 先日、PrivateLinkとALBを利用してECS FargateをロードバランシングするでECSをALBでロードバランシングさせる手順につい…
インフラこんにちは。Enjoy IT Life管理人の@nishina555です。 FargateとはECSの実行環境の1つです。Fargateを利用することでECSインスタンスの管理が不要になるため、インスタンスのキャパシティ…
インフラこんにちは。Enjoy IT Life管理人の@nishina555です。 先日【AWS】ECR + ECS + RDSを利用したDocker環境構築手順でECS環境の構築およびDockerイメージのデプロイ手順について…
インフラこんにちは。Enjoy IT Life管理人の@nishina555です。 先日、自作したDockerイメージをECRにpushする方法についてAWS CLIをインストールし、ECRへDockerイメージをpushする手…
インフラこんにちは。Enjoy IT Life管理人の@nishina555です。 AWS上にDocker環境を構築するにあたり、まずやるべきことがDockerリポジトリの作成です。 今回はAWSのDockerコンテナレジストリ…
インフラこんにちは。Enjoy IT Life管理人の@nishina555です。 先日、【AWS環境構築手順】VPCとEC2を作成し、実際にアクセスしてみるでAWSのEC2を構築する手順について紹介しました。 Webアプリケー…
Rubyこんにちは。Enjoy IT Life管理人の@nishina555です。 Railsアプリケーションを開発する際、開発環境であればrails sを実行するだけで簡単にアプリケーションを立ち上げられます。 しかし、です。…
Rubyこんにちは。Enjoy IT Life管理人の@nishina555です。 Railsアプリケーションを実際にサービスとして稼働させるためにはWebサーバーとの連携は必須です。 今回はPumaを利用してWebサーバー(n…
Rubyこんにちは。Enjoy IT Life管理人の@nishina555です。 今回はRails6 + MySQL8の開発環境をCentOS8上に構築する手順について紹介します。 開発環境(development)でサーバー…
ライティングこんにちは。Enjoy IT Life管理人の@nishina555です。 執筆作業をするうえで文章校正は大事な作業です。しかししてしまいます。 今回は文章チェックを機械的に行ってくれるtextlintの導入方法について…
インフラこんにちは。Enjoy IT Life管理人の@nishina555です。 チーム開発の現場では『root権限を持たない一般ユーザーでサーバーにログインし、sudo権限を持つユーザーにスイッチしてからサーバー上で作業する…
インフラこんにちは。Enjoy IT Life管理人の@nishina555です。 ロードバランサーを利用することで複数のWebサーバーでサービスを稼働させることができます。 AWS環境の場合だと『ALB + EC2』という組み…
インフラこんにちは。Enjoy IT Life管理人の@nishina555です。 前回、『ALB+EC2のAWS環境にRoute53を利用して独自ドメインを適用させる手順』でALBを利用したWebサーバーのDNS設定手順につい…
インフラこんにちは。Enjoy IT Life管理人の@nishina555です。 前回、ALBを導入してWebサーバーのロードバランシングを実現する手順について紹介しました。 上記の関連記事ではALBのデフォルトDNS名を利用…