読者です 読者をやめる 読者になる 読者になる

prmd と jdoc で JSON Schema の解釈が微妙に違う問題

Heroku Rails API JSON Schema

要するに JSON Schema を解釈して何かするライブラリによって方言が存在する状態になっている。

jdoc204 を表現できるけど、prmd202 となっている他、 status code の表現に使う場所が

    def has_response_body?
      @raw_link.media_type != "null"
    end

    # @return [Fixnum] Preferred respone status code for this endpoint
    def response_status
      case
      when method == "POST"
        201
      when has_response_body?
        200
      else
        204
      end
    end
HTTP/1.1 <%=
  case link['rel']
  when 'create'
    '201 Created'
  when 'empty'
    '202 Accepted'
  else
    '200 OK'
  end %>

みたいな状態。

jdocmedia_type 属性に null を指定すれば 204 だし、 prmdrel 属性に empty を指定すれば 202 ・・・

prmd のほうでは 202 の代わりに 204 にしないの?みたいな話が上がってたり

結局 JSON Schema の仕様が完璧じゃないから、実装によってその辺りがブレるんじゃねっていう状態なのかも・・

とりあえず、利用者も多そうだし、Heroku がメンテしているということで、prmd に寄せていくことにする。