WebAPIのレスポンスを統一するのが難しい
命名が難しいという点と、全レスポンスで一貫性させるのが難しいという話の2つがある。
前者は人のセンスによって変わる点、後者はツール等での検知が難しく、統一できない点がある。
命名の話
日までの場合、string(1970-01-01)で返すのか、ISO8601(1970-01-01T00:00:00.000Z)で返すのか
stringのメリット
無駄な情報がない
stringのデメリット
Date型で使う想定の場合に少し面倒
個人的には全部ISO8601で良い。理由はタイムゾーン情報が入ってくれるため。
開始-終了の日時を xxxFrom/xxxTo とするのか、xxxStart(Date|Time)/xxxEnd(Date|Time)とするのか
From/Toの場合は時刻まで決まっているもの、StartDate/EndDate は日付まで決まっているものとする。
StartTime/EndTimeに関しては、From/Toとどっちにするか難しい…
個人的にはStartDate/EndDateがあるならStartTime/EndTimeで合わせる感じが良い気もする。
Bool値をisXXXで統一するのかしないのか
統一のメリット
ひと目でbool値であることが分かる
統一のデメリット
canXXX/hasXXX等が使えなくなる
意味を優先していきたいが、isでbool値がわかるという話も理解はできる。
ただそれだと結局意味が明確にならないケースが発生しそうとも思う。xxxFlagの再来味を感じる。
なので、isを使えるところは使っていったほうが良いが、許可等の文脈に応じてcan等も使っていきたい。
レスポンス統一の話
ツール等ではなかなか検知できない。
規約等で命名規則を決めても、ルールが増えてくると一部で漏れが生じたりする。
レビューで頑張って潰すも、項目が多いとどうしようもなかったりするところがまた問題である。