質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

731閲覧

django rest frameworkの機能定義

ikasoumen

総合スコア110

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/04/09 01:54

前提・実現したいこと

APIを定義する際のプラクティスを教えて頂きたいです。

例えば、
projectに関連する課題のステータス状況を収集し、
projectの完了件数/未完件数を更新する機能を公開するとします。

その際に、シンプルな関数を作成し、ラップするような形でAPIを定義するのか、
それとも、API自身に処理を実装してしまうのか、一般的な手法が分かりません。

また、例外処理は、関数の中に配置するのか、外に配置するのか、どのようなイメージを持つのがよいでしょうか。

どうぞよろしくお願いいたします。

該当のソースコード

class ProjectViewSet(viewsets.ModelViewSet): queryset = Project.objects.all() serializer_class = ProjectSerializer @action(detail=False, methods=['post']) def refresh(self, request): project_number = request.data['project_number'] refresh_project(project_number) # シンプルな関数をラップ return Response(status=status.HTTP_200_OK)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

あまり答えにはなっていませんが、正直やりたい事、やり方によるとしか答えようがないと思います。

例として挙げられている機能についても、DBから一括で取得して返せるのであればそのまま関数に記載するかと思いますし、複雑な処理が必要であれば分けるのではないでしょうか。
特にDRFに限った話ではないかと思います。

例外処理に関しても同じで、例外が発生しうる処理かつその例外を処理する必要があるのであれば対応するだけです。
特にDRFだったり、関数の中、外という話ではないかと思います。

APIを定義する際のプラクティスを教えて頂きたいです。

つまり、冒頭に↑とありますが、APIを定義するとかは全然関係ありません。

投稿2020/04/09 05:33

編集2020/04/09 05:35
yamap55

総合スコア1376

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問