2016-05-09 6 views
1

現在、私はdjangoとdjango-restframeworkに基づいたアプリケーションを開発中です。 APIは、要求された時間範囲(毎週)に基づいてjsonエンコードされたイベント/タスクオブジェクトを配信します。カレンダーAPIの表現

私の知る限り、これは私の素敵なAPIの構造を与える見ることができるよう
calendar/week/<year>/<week_no>/ --> Get all events on isoweek <week_no> in <year> 
calendar/week/<year>/   --> Get current isoweek in <year> 
calendar/week/     --> Get current week 

calendar/day/<year>/<day_no>/ --> Get all events on isoday <day_no> in <year> 
calendar/day/<year>/   --> Get current isoday in <year> 
calendar/day/     --> Get current day 

:私はブラックボックスとしてバックエンドを考慮すれば、私は次のようなURL/API方式に降りてきます。

これは私の問題につながります。 このAPI構造を実装するアプローチは、django restframeworkで「最もクリーン」です。今の

私は次の可能性を参照してください。それぞれの

  • 一つdefaultrouterを、日、週
  • DRF-ネストされたルーターをモジュール
  • を利用して、デフォルトのURLマッピング
  • でカスタムルーターを実装します

この問題では経験が不足しているため、これについていくつかの意見を聞きたいと思います。

事前に感謝し、よろしく

Nerade

答えて

0

は別のアプローチは、クエリパラメータとしてこれらの「フィルタリング」のすべてのオプションを表示し、かつフィルタリング自体の支援に焦点を当てることであろう。この方法を使用すると、URLは/calendar/events/になります。対応するフィルタリングは、

/events/?week=41 
/events/?start=DDMMYY&end=DDMMYY 
/events/?day=53 

です。これは、毎回イベントのリストを返します。あなたが/events/43/を訪問した場合、それはおそらく、背景として使用するの

43あなたは、フロントエンドのJSフレームワークを使用している場合に役立ちますAPIを整理するためのいくつかのベストプラクティスについて説明しJSON API specです=あなたのIDとイベントの詳細を与えるだろう

+0

フィルタを使用してアプローチを教えていただきありがとうございます。私はこのアイデアがこれまでのところ私の心を越えていないことを認めなければならない。それでも、私はURLのフォーマットには満足していません。もし私がそれらを避けることができれば私は個人的にURLパラメータを嫌いです。しかし、これには他の提案はないので、私はこのようにフォールバックとして行くことができます。 – Nerade

関連する問題