| < draft-nottingham-http-problem-06.txt | draft-nottingham-http-problem-07.txt > | |||
|---|---|---|---|---|
| Network Working Group M. Nottingham | Network Working Group M. Nottingham | |||
| Internet-Draft Akamai | Internet-Draft Akamai | |||
| Intended status: Informational E. Wilde | Intended status: Informational E. Wilde | |||
| Expires: August 5, 2014 UC Berkeley | Expires: January 29, 2015 UC Berkeley | |||
| February 1, 2014 | July 28, 2014 | |||
| Problem Details for HTTP APIs | Problem Details for HTTP APIs | |||
| draft-nottingham-http-problem-06 | draft-nottingham-http-problem-07 | |||
| Abstract | Abstract | |||
| This document defines a "problem detail" as a way to carry machine- | This document defines a "problem detail" as a way to carry machine- | |||
| readable details of errors in a HTTP response, to avoid the need to | readable details of errors in a HTTP response, to avoid the need to | |||
| invent new error response formats for HTTP APIs. | invent new error response formats for HTTP APIs. | |||
| Note to Readers | Note to Readers | |||
| This draft should be discussed on the apps-discuss mailing list [1]. | This draft should be discussed on the apps-discuss mailing list [1]. | |||
| Status of this Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on August 5, 2014. | This Internet-Draft will expire on January 29, 2015. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2014 IETF Trust and the persons identified as the | Copyright (c) 2014 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Requirements . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. The Problem Details JSON Object . . . . . . . . . . . . . . . 4 | 3. The Problem Details JSON Object . . . . . . . . . . . . . . . 3 | |||
| 3.1. Problem Details Object Members . . . . . . . . . . . . . . 5 | 3.1. Problem Details Object Members . . . . . . . . . . . . . 4 | |||
| 3.2. Extension Members . . . . . . . . . . . . . . . . . . . . 5 | 3.2. Extension Members . . . . . . . . . . . . . . . . . . . . 5 | |||
| 4. Defining New Problem Types . . . . . . . . . . . . . . . . . . 6 | 4. Defining New Problem Types . . . . . . . . . . . . . . . . . 5 | |||
| 4.1. Example . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 4.1. Example . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4.2. Pre-Defined Problem Types . . . . . . . . . . . . . . . . 7 | 4.2. Pre-Defined Problem Types . . . . . . . . . . . . . . . . 7 | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 9 | 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . . 10 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 9 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . . 10 | 8.2. Informative References . . . . . . . . . . . . . . . . . 10 | |||
| Appendix A. HTTP Problems and XML . . . . . . . . . . . . . . . . 11 | Appendix A. HTTP Problems and XML . . . . . . . . . . . . . . . 10 | |||
| Appendix B. Using Problem Details with Other Formats . . . . . . 12 | Appendix B. Using Problem Details with Other Formats . . . . . . 12 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 13 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 1. Introduction | 1. Introduction | |||
| HTTP [RFC2616] status codes are sometimes not sufficient to convey | HTTP [RFC2616] status codes are sometimes not sufficient to convey | |||
| enough information about an error to be helpful. While humans behind | enough information about an error to be helpful. While humans behind | |||
| Web browsers can be informed about the nature of the problem with an | Web browsers can be informed about the nature of the problem with an | |||
| HTML [W3C.REC-html401-19991224] response body, non-human consumers of | HTML [W3C.REC-html401-19991224] response body, non-human consumers of | |||
| so-called "HTTP APIs" are usually not. | so-called "HTTP APIs" are usually not. | |||
| This specification defines simple JSON [RFC4627] and XML | This specification defines simple JSON [RFC4627] and XML | |||
| skipping to change at page 10, line 18 ¶ | skipping to change at page 9, line 43 ¶ | |||
| 8.1. Normative References | 8.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., | [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., | |||
| Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext | Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext | |||
| Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. | Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. | |||
| [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | |||
| Resource Identifier (URI): Generic Syntax", STD 66, | Resource Identifier (URI): Generic Syntax", STD 66, RFC | |||
| RFC 3986, January 2005. | 3986, January 2005. | |||
| [RFC4627] Crockford, D., "The application/json Media Type for | [RFC4627] Crockford, D., "The application/json Media Type for | |||
| JavaScript Object Notation (JSON)", RFC 4627, July 2006. | JavaScript Object Notation (JSON)", RFC 4627, July 2006. | |||
| [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax | [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax | |||
| Specifications: ABNF", STD 68, RFC 5234, January 2008. | Specifications: ABNF", STD 68, RFC 5234, January 2008. | |||
| 8.2. Informative References | 8.2. Informative References | |||
| [ISO-19757-2] | [ISO-19757-2] | |||
| International Organization for Standardization, | International Organization for Standardization, | |||
| "Information Technology --- Document Schema Definition | "Information Technology --- Document Schema Definition | |||
| Languages (DSDL) --- Part 2: Grammar-based Validation --- | Languages (DSDL) --- Part 2: Grammar-based Validation --- | |||
| RELAX NG", ISO/IEC 19757-2, 2003. | RELAX NG", ISO/IEC 19757-2, 2003. | |||
| [RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media | [RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media | |||
| Types", RFC 3023, January 2001. | Types", RFC 3023, January 2001. | |||
| [RFC5988] Nottingham, M., "Web Linking", RFC 5988, October 2010. | [RFC5988] Nottingham, M., "Web Linking", RFC 5988, October 2010. | |||
| [RFC6694] Moonesamy, S., "The "about" URI Scheme", RFC 6694, | [RFC6694] Moonesamy, S., "The "about" URI Scheme", RFC 6694, August | |||
| August 2012. | 2012. | |||
| [RFC6838] Freed, N., Klensin, J., and T. Hansen, "Media Type | [RFC6838] Freed, N., Klensin, J., and T. Hansen, "Media Type | |||
| Specifications and Registration Procedures", BCP 13, | Specifications and Registration Procedures", BCP 13, RFC | |||
| RFC 6838, January 2013. | 6838, January 2013. | |||
| [W3C.REC-html401-19991224] | [W3C.REC-html401-19991224] | |||
| Hors, A., Raggett, D., and I. Jacobs, "HTML 4.01 | Raggett, D., Hors, A., and I. Jacobs, "HTML 4.01 | |||
| Specification", World Wide Web Consortium | Specification", World Wide Web Consortium Recommendation | |||
| Recommendation REC-html401-19991224, December 1999, | REC-html401-19991224, December 1999, | |||
| <http://www.w3.org/TR/1999/REC-html401-19991224>. | <http://www.w3.org/TR/1999/REC-html401-19991224>. | |||
| [W3C.REC-rdfa-core-20120607] | [W3C.REC-rdfa-core-20120607] | |||
| Adida, B., Birbeck, M., McCarron, S., and I. Herman, "RDFa | Adida, B., Birbeck, M., McCarron, S., and I. Herman, "RDFa | |||
| Core 1.1", World Wide Web Consortium Recommendation REC- | Core 1.1", World Wide Web Consortium Recommendation REC- | |||
| rdfa-core-20120607, June 2012, | rdfa-core-20120607, June 2012, | |||
| <http://www.w3.org/TR/2012/REC-rdfa-core-20120607>. | <http://www.w3.org/TR/2012/REC-rdfa-core-20120607>. | |||
| [W3C.REC-xml-20081126] | [W3C.REC-xml-20081126] | |||
| Yergeau, F., Maler, E., Paoli, J., Sperberg-McQueen, C., | Bray, T., Paoli, J., Sperberg-McQueen, M., Maler, E., and | |||
| and T. Bray, "Extensible Markup Language (XML) 1.0 (Fifth | F. Yergeau, "Extensible Markup Language (XML) 1.0 (Fifth | |||
| Edition)", World Wide Web Consortium Recommendation REC- | Edition)", World Wide Web Consortium Recommendation REC- | |||
| xml-20081126, November 2008, | xml-20081126, November 2008, | |||
| <http://www.w3.org/TR/2008/REC-xml-20081126>. | <http://www.w3.org/TR/2008/REC-xml-20081126>. | |||
| URIs | ||||
| [1] <https://www.ietf.org/mailman/listinfo/apps-discuss> | ||||
| Appendix A. HTTP Problems and XML | Appendix A. HTTP Problems and XML | |||
| Some HTTP-based APIs use XML [W3C.REC-xml-20081126] as their primary | Some HTTP-based APIs use XML [W3C.REC-xml-20081126] as their primary | |||
| format convention. Such APIs MAY express problem details using the | format convention. Such APIs MAY express problem details using the | |||
| format defined in this appendix. | format defined in this appendix. | |||
| The OPTIONAL RELAX NG schema [ISO-19757-2] for the XML format is: | The OPTIONAL RELAX NG schema [ISO-19757-2] for the XML format is: | |||
| default namespace ns = "urn:ietf:rfc:XXXX" | default namespace ns = "urn:ietf:rfc:XXXX" | |||
| End of changes. 11 change blocks. | ||||
| 37 lines changed or deleted | 33 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||