2022-01-01から1年間の記事一覧

Ruby版のOpenAPI generatorで生成したAPIクライアントが、enumの定義にない値をレスポンスで受け取るとエラーになってしまうので、回避策を実施してみた

OpenAPIスキーマで enum を使うと、その項目が取り得る値を指定できます。 Enums - DataModels (Schemas) - OpenAPI Guide - swagger 例えば、以下のOpenAPIスキーマのようにレスポンスの型が定義されているAPIの場合、HTTPレスポンスボディの shop が取り得…

Railsで、wrap_parametersで追加されたキーに対し、Strong Parametersのrequireやpermitを使ってみた

Rails製のAPIに curl -X POST 'http://localhost:3000/wrap_parameter/outputs' -H "Content-Type: application/json" -d '{"name":"foo", "age": 20}' なリクエストを投げたところ、ログに Started POST "/wrap_parameter/outputs" for 127.0.0.1 at 2022-0…

Railsで、モデルとマイグレーションファイルのそれぞれにON DELETE CASCADEな設定をして挙動を確認してみた

DB上のテーブル間に外部キー制約があり、「親を消したら、親に関係する子も削除する」みたいな処理を行いたいとします。 この場合、テーブルの外部キー定義で ON DELETE を指定することで対応できます。 SQLite 4.3. ON DELETE and ON UPDATE Actions | SQLi…

Railsで、eager_loadのLEFT OUTER JOINにて、WHERE句とON句のそれぞれで絞り込みしてみた

Railsで eager_load を使う中で、 eager_load についてもうちょっと理解を深めたいと思いました。 eager_load についてはWeb上にいろいろな記事はあるものの、自分の理解を深めるためにためしたときのメモを残します。 今回は eager_load のLEFT JOINにて、W…

RubyMine 2021.3.3 にて、 debug gemを含むRails 6.1 アプリがデバッグできなかったため、回避策を実施してみた

自分の環境だけかもしれませんが、RubyMine 2021.3.3で debug gem を含む Rails 6.1 アプリがデバッグできなかったため、回避策を実施したときのメモを残します。 目次 環境 再現の流れ Railsとdebug gem の準備 Railsアプリの作成 通常起動で動作確認 デバ…

Railsで、関連付けの基本や関連付けにおけるNOT NULL制約まわりをさわってみた

Railsにてモデルの関連付けを行おうとしたとき、色々と機能があることに気づきました。 Active Record の関連付け - Railsガイド Active Record マイグレーション - Railsガイド そこで、まずはモデルの関連付けの基本およびNOT NULL制約まわりをさわってみ…

Python + requests-oauthlib にて、OAuth2.0の認可コードグラントフローでアクセストークンを取得し、リソースサーバのAPIからデータを取得してみた

前回、Rails + Doorkeeperを使ってOAuth2.0の認可サーバを、Rails + OmniAuth を使ってクライアントを作ってみました。 Rails + Devise + OmniAuthにて、Deviseで認証を、OmniAuthでOAuth2.0の認可コードグラントフローの認可だけを扱えるか試してみた - メ…

Rails + Devise + OmniAuthにて、Deviseで認証を、OmniAuthでOAuth2.0の認可コードグラントフローの認可だけを扱えるか試してみた

Rubyの OmniAuth gemの用途としてREADMEには OmniAuth is a library that standardizes multi-provider authentication for web applications. It was created to be powerful, flexible, and do as little as possible. Any developer can create strategie…

Raspberry Pi 2 + PaSoRi RC-S380 + nfcpyにて、FeliCa読み取り時にPowerOffし、Slackへ通知してみた

以前、Raspberry Pi 2 + パソリ RC-S320 + libpafeにて、FeliCa読み取り時にPowerOffし、Slackへ通知したことがありました。 その後、 PaSoRiを RC-S380 へ更新した nfcpy がPython3対応した nfcpy/nfcpy: A Python module to read/write NFC tags or commun…

GoogleAppsScriptを使って、Gmailで特定のラベルが付いたメールがあったら、Slackへ通知した上で既読にしてみた

最近Slackからの通知をトリガーに作業を行うことが多いため、「メールをトリガーに作業を行う」という習慣がなくなりつつあります。 ただ、Webサービスからのメールなど、メールでしか通知を受け取れないこともあります。特に、「不定期に連絡があるけれど、…

Dell Inspiron 3585 の Windows 10 が起動しなくなったので、初期化したときのメモ

PC

ふと気づいたら、手元の Inspiron 3585 の Windows 10 が起動しなくなっていました。 そこで Inspironをリカバリしようとしたところ、いくつか悩んだことがあったため、メモを残します。 目次 環境 症状 対応 スタートアップ修復を試す → NG Windows 10 の再…

Rails + OpenAPI なAPIにて、レスポンスボディがない場合、committee の assert_response_schema_confirm を使うとエラーになる

Rails + OpenAPI で作られているAPIのテストコードを書く時、 interagent/committee: A collection of Rack middleware to support JSON Schema. willnet/committee-rails: rails and committee are good friends を使うことで、OpenAPIスキーマのテストもし…

書籍レビュアーとして参加した、 #Python実践レシピ が発売になります

書籍レビュアーとして参加した「Python実践レシピ」が2022/01/13 (電子本)・2022/01/19 (物理本) に発売されます。 Pythonエンジニア育成推進協会監修 Python実践レシピ:書籍案内|技術評論社 先日、発売前の書籍をご恵贈いただきました。ありがとうござい…

2021年の振り返りと2022年の目標

例年通り、2021年の振り返りと2022年の目標っぽいものを書いてみます。 2021年の振り返り 2020年の振り返りと2021年の目標 - メモ的な思考的な で立てた目標を振り返ってみます。 新しい環境に溶け込む 2021年の新年から新しい環境でした。一度も物理出社す…