akiyoko blog

akiyoko の IT技術系ブログです

DRF を使うなら必読!『現場で使える Django REST Framework の教科書』を技術書典7 で頒布します

9月22日に開催される 技術書典7 に、「あきよこブログ」として 4回目のサークル参加をします。

みなさん安心してください、今回も Django 本ですよ 😁


新刊は『現場で使える Django REST Framework の教科書』です。


f:id:akiyoko:20190908041824p:plain:w400



「Django REST Framework(通称 DRF)」にピンと来ない方がいるかもしれませんが、「Django」の上に乗っかった、API を作ることに特化したライブラリです。つまり DRF は、Python で REST API を作るためのフレームワークです。SPA(シングルページアプリケーション)やスマホアプリのバックエンドとして利用されることが多いです。Django も DRF も日本ではあまり知られていませんが、実は海外では結構有名です。

どんな内容?

技術書典6 で頒布した前作『現場で使える Django REST Framework の薄い本』にかなり大幅な加筆・改訂を加えて、「Django の教科書」シリーズとしてリニューアルしました。前作の124ページに対して、今作は204ページと大ボリュームの仕上がりになっています。

今のところ、同人誌を含めて 日本でオンリーワンの「Django REST Framework」の日本語書籍 になっています。

内容は、Django REST Framework を現場で使う際に必要となる基礎知識と発展的な Tips をまとめたものになっています。なお、Django REST Framework は Django をベースにしている部分があるので、Django についての解説に紙面を割いているところもあります。

前半は DRF の概要や全体像、コンポーネントごとの仕組みや使い方、セキュリティや認証などの基礎知識を座学で進めていきます。後半はチュートリアルおよび発展的な Tips という構成になっています。

後半のチュートリアルでは、Django も Django REST Framework も何にも分からないという方でもちょっとした SPA が作れるように、Django REST Framework と Vue.js を使った SPA のサンプルプロジェクトを2つ、簡単なものと少し難しめなものを用意しました。 これを手本に写経すれば、REST API を使った Webアプリケーションの仕組みが何となく掴めるでしょう。

目次

f:id:akiyoko:20190907201801p:plain:w500
f:id:akiyoko:20190908101706p:plain:w500

対象読者

対象読者としては、

  • Django は何となく分かるが、Django REST Framework は初めてという方
  • Django REST Framework のまとまった日本語情報を手に入れたい方
  • Django REST Framework + Vue.js で SPA を構築したい方
  • 現場で本格的に Django REST Framework を使いたい方

を想定しています。

最低限必要の知識としては「Django の仕組みが何となく理解できていること」です。Django 公式チュートリアルDjango Girls チュートリアル をひと通り終えたくらいであれば、何とか理解できるレベルになっているかと思います。拙著『現場で使える Django の教科書《基礎編》』を読み終えたくらいの知識があれば万全ですが、『現場で使える Django の教科書《実践編》』レベルの知識は不要でしょう。


前作の薄い本と何が違うの?

ざっと挙げるとこんな違いがあります。

  • 本文が204ページに大幅増(前作の124ページから1.6倍!)
  • DRF のコンポーネントの解説が充実
  • ユニットテストの章を新設
  • Tips(発展編)のトピック数が 5 ⇒ 13 に(ページ数は 11p ⇒ 31p)
  • 各種ライブラリは最新バージョンに対応

一番の特徴は、コンポーネントの解説を充実させたことです。「モデル・シリアライザ・ビュー・URLconf」で1つの章になっていたのを、それぞれ独立した章として新設しました。ページ数では、モデル 1p ⇒ 18p、シリアライザ 8p ⇒ 18p、ビュー 14p ⇒ 25p、URLconf 5p ⇒ 8p とそれぞれ大幅に増えています。特に、シリアライザは DRF の中でも大きな部分を占めるので、図を増やしてイチから分かりやすい解説を目指しました。

DRFではシリアライザとビューが特に重要と考えています。シリアライザはフォームと同様に使えるように作られたコンポーネントで、使うのにコツが必要です。一方、DRFのビューはキモの部分で、通常のビューとどう違うのか?どのクラスを継承すればよいのか?を理解する必要があります。新刊を読めばそのあたりもスッキリ理解できるようにいろいろと追記しました。

あと、Django 初心者に少し優しくなりました。特に、前作ではモデルについての説明を「Django と同じ。以上!」としていたのを、きちんと章立てをして解説しています。内容は『現場で使える Django の教科書《基礎編》』からのほぼ抜粋になりますが、スッキリとまとめ直した上で DRF 向けに修正を加えています。

新設した「ユニットテスト」の章もぜひ読んでほしいです。〆切ギリギリで入れるかどうか悩みましたが、教科書としてユニットテストは必須と判断しました。11pと短いながらも、Djangoのユニットテストの特徴やフロー、DRFでの具体的な書き方など、うまくまとめられたと自画自賛しています。

最終章のTips集では、

  • Browsable API
  • APIドキュメント
  • フィルタリング
  • ページネーション

などの機能解説や、

  • 関連モデルの扱い
  • フィールドの追加
  • ネストしたURL
  • カスタムアクション
  • トランザクション
  • 排他制御

など「こんなときはDRFではどうすればいいの?」という疑問にお答えしています。

「Djangoの教科書」シリーズの名に恥じないようDRFの基礎知識やノウハウをできる限り網羅しつつ、DRF初心者にも分かりやすく読めるように書きました。現場でDRFを使っている人、これから使う人の手元に置いてもらえるように頑張って書いたので、とにかく一度、手に取って読んでみていただければと思います。



そして、「そこまで言われても、前作の薄い本買っちゃったしなぁ。どうしよう・・」と悩んでいるあなたに朗報です。

前作『~の薄い本』を技術書典7に持ってきていただいた方、先着50名に、なんとワンコイン(500円)で新刊を買えるサービスを実施します!


f:id:akiyoko:20190908122859p:plain:w400

ただし、お一人様1冊限りでお願いします(薄い本にはスタンプを押させていただきますのでご了承ください)。


頒布本情報

既刊の『現場で使える Django の教科書《基礎編》』『現場で使える Django の教科書《実践編》』を含めて、「Django の教科書」シリーズが3冊揃っています。

なおいつものように「会場特別価格」です。


f:id:akiyoko:20190917121916p:plain:w300


f:id:akiyoko:20190917121947p:plain:w300


実は今回の技術書典に合わせて《実践編》を1年振りにリニューアルして、Django 2.2 対応等をおこないました。


これらの既刊については、Amazon や BOOTH で電子版とペーパー版が販売中です。


◆ 現場で使える Django の教科書《基礎編》 - Amazon(電子版・ペーパー版)

現場で使える Django の教科書《基礎編》

現場で使える Django の教科書《基礎編》

◆ 現場で使える Django の教科書《基礎編》 - BOOTH(ペーパー版)
現場で使える Django の教科書《基礎編》【紙の本】 - あきよこブログ(akiyoko blog) - BOOTH


◆ 現場で使える Django の教科書《実践編》 - Amazon(電子版)

現場で使える Django の教科書《実践編》

現場で使える Django の教科書《実践編》

◆ 現場で使える Django の教科書《実践編》 - BOOTH(ペーパー版)
現場で使える Django の教科書《実践編》【紙の本】 - あきよこブログ(akiyoko blog) - BOOTH



頒布場所

日時は 9/22(日)11時から17時まで、頒布場所は池袋サンシャインシティ3F 展示ホール「お74C」の「あきよこブログ」です。

見本誌を置いてますので、立ち読みだけでもお気軽にどうぞ。

f:id:akiyoko:20190917122645p:plain



最後に

余裕をもって始めたはずの執筆ですが、急遽、《実践編》の改訂と増版をしたのもあり、今回もギリギリの入稿になってしまいました。出すものは全部出した感があるので、自分なりにスッキリしています。技術書典当日は晴れやかに迎えられそうです!