Changed all (appropriate) links to https as certificate is now in play.

This commit is contained in:
Todd Fredrich
2018-07-03 16:21:23 -06:00
parent 897540ed38
commit acd11d7c41
12 changed files with 61 additions and 69 deletions

View File

@ -1,7 +1,7 @@
<html> <html>
<head> <head>
<title>Moved to new URL: http://www.restapitutorial.com/lessons/httpmethods.html</title> <title>Moved to new URL: https://www.restapitutorial.com/lessons/httpmethods.html</title>
<meta http-equiv=refresh content="0; url=http://www.restapitutorial.com/lessons/httpmethods.html" /> <meta http-equiv=refresh content="0; url=https://www.restapitutorial.com/lessons/httpmethods.html" />
<meta name="robots" content="noindex,follow" /> <meta name="robots" content="noindex,follow" />
<!-- Facebook Pixel Code --> <!-- Facebook Pixel Code -->
<script> <script>
@ -22,9 +22,9 @@
<!-- End Facebook Pixel Code --> <!-- End Facebook Pixel Code -->
</head> </head>
<body> <body>
<h1>This page has been moved to http://www.restapitutorial.com/lessons/httpmethods.html</h1> <h1>This page has been moved to https://www.restapitutorial.com/lessons/httpmethods.html</h1>
<p>If your browser doesn't redirect you to the new location please <p>If your browser doesn't redirect you to the new location please
<a href="http://www.restapitutorial.com/lessons/httpmethods.html"><strong>click here</strong></a>, <a href="https://www.restapitutorial.com/lessons/httpmethods.html"><strong>click here</strong></a>,
sorry for the hassles!</p> sorry for the hassles!</p>
</body> </body>
</html> </html>

View File

@ -71,7 +71,7 @@
<div class="row"> <div class="row">
<div class="span12"> <div class="span12">
<h1>HTTP Status Codes</h1> <h1>HTTP Status Codes</h1>
<p>This page is created from HTTP status code information found at <a href="http://www.ietf.org/assignments/http-status-codes/http-status-codes.xml" target="_blank">ietf.org</a> and <a href="http://en.wikipedia.org/wiki/HTTP_status_code" target="_blank">Wikipedia</a>. Click on the <strong>category heading</strong> or the <strong>status code</strong> link to read more.</p> <p>This page is created from HTTP status code information found at <a href="https://www.ietf.org/assignments/http-status-codes/http-status-codes.xml" target="_blank">ietf.org</a> and <a href="https://en.wikipedia.org/wiki/HTTP_status_code" target="_blank">Wikipedia</a>. Click on the <strong>category heading</strong> or the <strong>status code</strong> link to read more.</p>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
@ -828,17 +828,17 @@
</div> </div>
<hr> <hr>
<footer> <footer>
<p><a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />This work by <a xmlns:cc="http://creativecommons.org/ns#" href="http://www.restapitutorial.com/" property="cc:attributionName" rel="cc:attributionURL">RestApiTutorial.com</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.</p> <p><a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />This work by <a xmlns:cc="https://creativecommons.org/ns#" href="https://www.restapitutorial.com/" property="cc:attributionName" rel="cc:attributionURL">RestApiTutorial.com</a> is licensed under a <a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.</p>
</footer> </footer>
</div> <!-- /container --> </div> <!-- /container -->
<div class="navbar navbar-fixed-top"> <div class="navbar navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container"> <div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a> <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a>
<a class="brand" href="http://www.restapitutorial.com">REST API Tutorial</a> <a class="brand" href="https://www.restapitutorial.com">REST API Tutorial</a>
<div class="nav-collapse"> <div class="nav-collapse">
<ul class="nav"> <ul class="nav">
<li><a href="http://www.restapitutorial.com">Home</a></li> <li><a href="https://www.restapitutorial.com">Home</a></li>
<li class="dropdown" id="api-school"><a class="dropdown-toggle" data-toggle="dropdown" href="#">Tutorials<b class="caret"></b></a> <li class="dropdown" id="api-school"><a class="dropdown-toggle" data-toggle="dropdown" href="#">Tutorials<b class="caret"></b></a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li><a href="lessons/whatisrest.html">What Is REST?</a></li> <li><a href="lessons/whatisrest.html">What Is REST?</a></li>

View File

@ -84,7 +84,7 @@ valueOf()+(h?'&utmxhash='+escape(h.substr(1)):'')+
<div class="row"> <div class="row">
<div class="span2"> <div class="span2">
<ul class="nav nav-list"> <ul class="nav nav-list">
<li class="active"><a href="http://www.restapitutorial.com">Home</a></li> <li class="active"><a href="https://www.restapitutorial.com">Home</a></li>
<ul class="nav nav-list"> <ul class="nav nav-list">
<li><a href="lessons/whatisrest.html">What Is REST?</a></li> <li><a href="lessons/whatisrest.html">What Is REST?</a></li>
<li><a href="lessons/restquicktips.html">REST Quick Tips</a></li> <li><a href="lessons/restquicktips.html">REST Quick Tips</a></li>
@ -100,25 +100,17 @@ valueOf()+(h?'&utmxhash='+escape(h.substr(1)):'')+
<!-- Main hero unit for a primary marketing message or call to action --> <!-- Main hero unit for a primary marketing message or call to action -->
<div class="span10"> <div class="span10">
<div class="hero-unit"> <div class="hero-unit">
<p><strong>Hey, Fellow REST API Designer!</strong></p>
<p>You're here to get your <strong>questions answered.</strong> Let's make sure your most-pressing ones are addressed!</p>
<p>I'm creating a FREE Webinar on REST API design and want to <strong>focus on your questions!</strong></p>
<p><a href="restapiwebinar.html">Submit your most burning REST API question here</a>, along with your email address and we'll be in touch.</p>
<p>REST well!<br>
Todd Fredrich, <em>The REST API Tutor</em></p>
<a class="btn btn-primary btn-large" href="restapiwebinar.html">Submit Your Question Now!</a>
</div>
<div>
<h1>Learn <abbr title="Representational State Transfer">REST</abbr>: A RESTful Tutorial</h1> <h1>Learn <abbr title="Representational State Transfer">REST</abbr>: A RESTful Tutorial</h1>
<p><strong>Hey, Fellow REST API Designer!</strong></p>
<p>Building RESTful web services, like other programming skills is <strong>part art, part science</strong>. As the Internet industry progresses, creating a REST API becomes more concrete with emerging best practices. As RESTful web services don't follow a prescribed standard except for HTTP, it's important to build your RESTful API in accordance with industry best practices to ease development and increase client adoption.</p> <p>Building RESTful web services, like other programming skills is <strong>part art, part science</strong>. As the Internet industry progresses, creating a REST API becomes more concrete with emerging best practices. As RESTful web services don't follow a prescribed standard except for HTTP, it's important to build your RESTful API in accordance with industry best practices to ease development and increase client adoption.</p>
<p>Presently, there aren't a lot of REST API guides to help the lonely developer. <a href="http://www.restapitutorial.com">RestApiTutorial.com</a> is dedicated to tracking REST API best practices and making resources available to enable quick reference and self education for the development crafts-person. We'll discuss both the art and science of creating REST Web services.</p> <p>Presently, there aren't a lot of REST API guides to help the lonely developer. <a href="https://www.restapitutorial.com">RestApiTutorial.com</a> is dedicated to tracking REST API best practices and making resources available to enable quick reference and self education for the development crafts-person. We'll discuss both the art and science of creating REST Web services.</p>
<p>&mdash;Todd Fredrich, <em>The REST API Tutor</em></p> <p>&mdash;Todd Fredrich, <em>The REST API Tutor</em></p>
<p>Jump in with <a href="lessons/whatisrest.html">What Is REST?</a>, an overview of concepts and constraints of the RESTful architecture.</p> <p>Jump in with <a href="lessons/whatisrest.html">What Is REST?</a>, an overview of concepts and constraints of the RESTful architecture.</p>
<p><a class="btn btn-primary btn-large" href="lessons/whatisrest.html">Next &raquo;</a></p> <p><a class="btn btn-primary btn-large" href="lessons/whatisrest.html">Next &raquo;</a></p>
</div> </div>
<hr> <hr>
<footer> <footer>
<p><a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />This work by <a xmlns:cc="http://creativecommons.org/ns#" href="http://www.restapitutorial.com/" property="cc:attributionName" rel="cc:attributionURL">RestApiTutorial.com</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.</p> <p><a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />This work by <a xmlns:cc="https://creativecommons.org/ns#" href="https://www.restapitutorial.com/" property="cc:attributionName" rel="cc:attributionURL">RestApiTutorial.com</a> is licensed under a <a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.</p>
</footer> </footer>
</div> </div>
</div> <!-- /row --> </div> <!-- /row -->
@ -127,10 +119,10 @@ valueOf()+(h?'&utmxhash='+escape(h.substr(1)):'')+
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container"> <div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a> <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a>
<a class="brand" href="http://www.restapitutorial.com">REST API Tutorial</a> <a class="brand" href="https://www.restapitutorial.com">REST API Tutorial</a>
<div class="nav-collapse"> <div class="nav-collapse">
<ul class="nav"> <ul class="nav">
<li class="active"><a href="http://www.restapitutorial.com">Home</a></li> <li class="active"><a href="https://www.restapitutorial.com">Home</a></li>
<li class="dropdown" id="api-school"><a class="dropdown-toggle" data-toggle="dropdown" href="#">Tutorials<b class="caret"></b></a> <li class="dropdown" id="api-school"><a class="dropdown-toggle" data-toggle="dropdown" href="#">Tutorials<b class="caret"></b></a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li><a href="lessons/whatisrest.html">What Is REST?</a></li> <li><a href="lessons/whatisrest.html">What Is REST?</a></li>

View File

@ -203,14 +203,14 @@
</div> </div>
<hr> <hr>
<footer> <footer>
<p><a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />This work by <a xmlns:cc="http://creativecommons.org/ns#" href="http://www.RestApiTutorial.com" property="cc:attributionName" rel="cc:attributionURL">RestApiTutorial.com</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.</p> <p><a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />This work by <a xmlns:cc="https://creativecommons.org/ns#" href="https://www.RestApiTutorial.com" property="cc:attributionName" rel="cc:attributionURL">RestApiTutorial.com</a> is licensed under a <a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.</p>
</footer> </footer>
</div> <!-- /container --> </div> <!-- /container -->
<div class="navbar navbar-fixed-top"> <div class="navbar navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container"> <div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a> <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a>
<a class="brand" href="http://www.restapitutorial.com">REST API Tutorial</a> <a class="brand" href="https://www.restapitutorial.com">REST API Tutorial</a>
<div class="nav-collapse"> <div class="nav-collapse">
<ul class="nav"> <ul class="nav">
<li><a href="../index.html">Home</a></li> <li><a href="../index.html">Home</a></li>

View File

@ -87,7 +87,7 @@
</div> </div>
<div id="video1" class="row collapse in"> <div id="video1" class="row collapse in">
<div class="span12"> <div class="span12">
<iframe width="853" height="480" src="http://www.youtube.com/embed/6dVNdFwqeKs" frameborder="0" allowfullscreen></iframe> <iframe width="853" height="480" src="https://www.youtube.com/embed/6dVNdFwqeKs" frameborder="0" allowfullscreen></iframe>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
@ -103,14 +103,14 @@
</div> </div>
<hr> <hr>
<footer> <footer>
<p><a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />This work by <a xmlns:cc="http://creativecommons.org/ns#" href="http://www.restapitutorial.com/" property="cc:attributionName" rel="cc:attributionURL">RestApiTutorial.com</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.</p> <p><a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />This work by <a xmlns:cc="https://creativecommons.org/ns#" href="https://www.restapitutorial.com/" property="cc:attributionName" rel="cc:attributionURL">RestApiTutorial.com</a> is licensed under a <a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.</p>
</footer> </footer>
</div> <!-- /container --> </div> <!-- /container -->
<div class="navbar navbar-fixed-top"> <div class="navbar navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container"> <div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a> <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a>
<a class="brand" href="http://www.restapitutorial.com">REST API Tutorial</a> <a class="brand" href="https://www.restapitutorial.com">REST API Tutorial</a>
<div class="nav-collapse"> <div class="nav-collapse">
<ul class="nav"> <ul class="nav">
<li><a href="../index.html">Home</a></li> <li><a href="../index.html">Home</a></li>

View File

@ -133,7 +133,7 @@
<p>Look at some widely used APIs to get the hang of this and leverage the intuition of your teammates to refine your API resource URIs. Some example APIs are:</p> <p>Look at some widely used APIs to get the hang of this and leverage the intuition of your teammates to refine your API resource URIs. Some example APIs are:</p>
<ul> <ul>
<li>Twitter: https://developer.twitter.com/en/docs/api-reference-index</li> <li>Twitter: https://developer.twitter.com/en/docs/api-reference-index</li>
<li>Facebook: http://developers.facebook.com/docs/reference/api/</li> <li>Facebook: https://developers.facebook.com/docs/reference/api/</li>
<li>LinkedIn: https://developer.linkedin.com/apis</li> <li>LinkedIn: https://developer.linkedin.com/apis</li>
</ul> </ul>
</div> </div>
@ -176,14 +176,14 @@
</div> </div>
<hr> <hr>
<footer> <footer>
<p><a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />This work by <a xmlns:cc="http://creativecommons.org/ns#" href="http://www.restapitutorial.com/" property="cc:attributionName" rel="cc:attributionURL">RestApiTutorial.com</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.</p> <p><a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />This work by <a xmlns:cc="https://creativecommons.org/ns#" href="https://www.restapitutorial.com/" property="cc:attributionName" rel="cc:attributionURL">RestApiTutorial.com</a> is licensed under a <a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.</p>
</footer> </footer>
</div> <!-- /container --> </div> <!-- /container -->
<div class="navbar navbar-fixed-top"> <div class="navbar navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container"> <div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a> <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a>
<a class="brand" href="http://www.restapitutorial.com">REST API Tutorial</a> <a class="brand" href="https://www.restapitutorial.com">REST API Tutorial</a>
<div class="nav-collapse"> <div class="nav-collapse">
<ul class="nav"> <ul class="nav">
<li><a href="../index.html">Home</a></li> <li><a href="../index.html">Home</a></li>

View File

@ -119,7 +119,7 @@
</ul> </ul>
</p> </p>
<h2>Use HTTP Response Codes to Indicate Status</h2> <h2>Use HTTP Response Codes to Indicate Status</h2>
<p>Response status codes are part of the HTTP specification. There are quite a number of them to address the most common situations. In the spirit of having our RESTful services embrace the HTTP specification, our Web APIs should return relevant HTTP status codes. For example, when a resource is successfully created (e.g. from a POST request), the API should return HTTP status code 201. A list of valid <a href="http://www.restapitutorial.com/httpstatuscodes.html">HTTP status codes</a> is available <a href="http://www.restapitutorial.com/httpstatuscodes.html">here</a> which lists detailed descriptions of each.</p> <p>Response status codes are part of the HTTP specification. There are quite a number of them to address the most common situations. In the spirit of having our RESTful services embrace the HTTP specification, our Web APIs should return relevant HTTP status codes. For example, when a resource is successfully created (e.g. from a POST request), the API should return HTTP status code 201. A list of valid <a href="https://www.restapitutorial.com/httpstatuscodes.html">HTTP status codes</a> is available <a href="https://www.restapitutorial.com/httpstatuscodes.html">here</a> which lists detailed descriptions of each.</p>
<p>Suggested usages for the &quot;Top 10&quot; HTTP Response Status Codes are as follows: <p>Suggested usages for the &quot;Top 10&quot; HTTP Response Status Codes are as follows:
<dl> <dl>
<dt>200 OK</dt> <dt>200 OK</dt>
@ -148,15 +148,15 @@
<p>Favor JSON support unless you're in a highly-standardized and regulated industry that requires XML, schema validation and namespaces, and offer both JSON and XML unless the costs are staggering. Ideally, let consumers switch between formats using the HTTP Accept header, or by just changing an extension from .xml to .json on the URL.</p> <p>Favor JSON support unless you're in a highly-standardized and regulated industry that requires XML, schema validation and namespaces, and offer both JSON and XML unless the costs are staggering. Ideally, let consumers switch between formats using the HTTP Accept header, or by just changing an extension from .xml to .json on the URL.</p>
<p>Be aware that as soon as we start talking about XML support, we start talking about schemas for validation, namespaces, etc. Unless required by your industry, avoid supporting all that complexity initially, if ever. JSON is designed to be simple, terse and functional. Make your XML look like that if you can.</p> <p>Be aware that as soon as we start talking about XML support, we start talking about schemas for validation, namespaces, etc. Unless required by your industry, avoid supporting all that complexity initially, if ever. JSON is designed to be simple, terse and functional. Make your XML look like that if you can.</p>
<p>In other words, make the XML that is returned more JSON-like &mdash; simple and easy to read, without the schema and namespace details present, just data and links. If it ends up being more complex than this, the cost of XML will be staggering. In my experience no one has used XML responses anyway for the last several years, it's just too expensive to consume.</p> <p>In other words, make the XML that is returned more JSON-like &mdash; simple and easy to read, without the schema and namespace details present, just data and links. If it ends up being more complex than this, the cost of XML will be staggering. In my experience no one has used XML responses anyway for the last several years, it's just too expensive to consume.</p>
<p>Note that <a href="http://json-schema.org/">JSON-Schema</a> offers schema-style validation capabilities, if you need that sort of thing.</p> <p>Note that <a href="https://json-schema.org/">JSON-Schema</a> offers schema-style validation capabilities, if you need that sort of thing.</p>
<h2>Create Fine-Grained Resources</h2> <h2>Create Fine-Grained Resources</h2>
<p>When starting out, it's best to create APIs that mimic the underlying application domain or database architecture of your system. Eventually, you'll want aggregate services that utilize multiple underlying resources to reduce chattiness. However, it's much easier to create larger resources later from individual resources than it is to create fine-grained or individual resources from larger aggregates. Make it easy on yourself and start with small, easily defined resources, providing CRUD functionality on those. You can create those use-case-oriented, chattiness-reducing resources later.</p> <p>When starting out, it's best to create APIs that mimic the underlying application domain or database architecture of your system. Eventually, you'll want aggregate services that utilize multiple underlying resources to reduce chattiness. However, it's much easier to create larger resources later from individual resources than it is to create fine-grained or individual resources from larger aggregates. Make it easy on yourself and start with small, easily defined resources, providing CRUD functionality on those. You can create those use-case-oriented, chattiness-reducing resources later.</p>
<h2>Consider Connectedness</h2> <h2>Consider Connectedness</h2>
<p>One of the principles of REST is connectedness—via hypermedia links (search HATEOAS). While services are still useful without them, APIs become more self-descriptive and discoverable when links are returned in the response. At the very least, a 'self' link reference informs clients how the data was or can be retrieved. Additionally, utilize the HTTP Location header to contain a link on resource creation via POST (or PUT). For collections returned in a response that support pagination, 'first', 'last', 'next' and 'prev' links at a minimum are very helpful.</p> <p>One of the principles of REST is connectedness—via hypermedia links (search HATEOAS). While services are still useful without them, APIs become more self-descriptive and discoverable when links are returned in the response. At the very least, a 'self' link reference informs clients how the data was or can be retrieved. Additionally, utilize the HTTP Location header to contain a link on resource creation via POST (or PUT). For collections returned in a response that support pagination, 'first', 'last', 'next' and 'prev' links at a minimum are very helpful.</p>
<p>Regarding linking formats, there are many. The HTTP Web Linking Specification (<a href="http://tools.ietf.org/search/rfc5988">RFC5988</a>) explains a link as follows: <p>Regarding linking formats, there are many. The HTTP Web Linking Specification (<a href="https://tools.ietf.org/search/rfc5988">RFC5988</a>) explains a link as follows:
<blockquote>a link is a typed connection between two <blockquote>a link is a typed connection between two
resources that are identified by Internationalised Resource resources that are identified by Internationalised Resource
Identifiers (IRIs) [<a href="http://tools.ietf.org/search/rfc3987">RFC3987</a>], and is comprised of: Identifiers (IRIs) [<a href="https://tools.ietf.org/search/rfc3987">RFC3987</a>], and is comprised of:
<ul> <ul>
<li>A context IRI,</li> <li>A context IRI,</li>
<li>a link relation type</li> <li>a link relation type</li>
@ -166,19 +166,19 @@
A link can be viewed as a statement of the form &quot;{context IRI} has a A link can be viewed as a statement of the form &quot;{context IRI} has a
{relation type} resource at {target IRI}, which has {target {relation type} resource at {target IRI}, which has {target
attributes}.&quot;</blockquote></p> attributes}.&quot;</blockquote></p>
<p>At the very least, place links in the HTTP Link header as recommended in the specification, or embrace a JSON representation of this HTTP link style (such as Atom-style links, see: <a href="http://tools.ietf.org/search/rfc4287#section-4.2.7">RFC4287</a>) in your JSON representations. Later, you can layer in more complex linking styles such as <a href="http://stateless.co/hal_specification.html">HAL+JSON</a>, <a href="https://github.com/kevinswiber/siren">Siren</a>, <a href="http://amundsen.com/media-types/collection/">Collection+JSON</a>, and/or <a href="http://json-ld.org/">JSON-LD</a>, etc. as your REST APIs become more mature.</p> <p>At the very least, place links in the HTTP Link header as recommended in the specification, or embrace a JSON representation of this HTTP link style (such as Atom-style links, see: <a href="https://tools.ietf.org/search/rfc4287#section-4.2.7">RFC4287</a>) in your JSON representations. Later, you can layer in more complex linking styles such as <a href="https://stateless.co/hal_specification.html">HAL+JSON</a>, <a href="https://github.com/kevinswiber/siren">Siren</a>, <a href="https://amundsen.com/media-types/collection/">Collection+JSON</a>, and/or <a href="https://json-ld.org/">JSON-LD</a>, etc. as your REST APIs become more mature.</p>
</div> </div>
</div> </div>
<hr> <hr>
<footer> <footer>
<p><a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />This work by <a xmlns:cc="http://creativecommons.org/ns#" href="http://www.restapitutorial.com/" property="cc:attributionName" rel="cc:attributionURL">RestApiTutorial.com</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.</p> <p><a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />This work by <a xmlns:cc="https://creativecommons.org/ns#" href="https://www.restapitutorial.com/" property="cc:attributionName" rel="cc:attributionURL">RestApiTutorial.com</a> is licensed under a <a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.</p>
</footer> </footer>
</div> <!-- /container --> </div> <!-- /container -->
<div class="navbar navbar-fixed-top"> <div class="navbar navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container"> <div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a> <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a>
<a class="brand" href="http://www.restapitutorial.com">REST API Tutorial</a> <a class="brand" href="https://www.restapitutorial.com">REST API Tutorial</a>
<div class="nav-collapse"> <div class="nav-collapse">
<ul class="nav"> <ul class="nav">
<li><a href="../index.html">Home</a></li> <li><a href="../index.html">Home</a></li>

View File

@ -87,12 +87,12 @@
</div> </div>
<div id="video1" class="row collapse in"> <div id="video1" class="row collapse in">
<div class="span12"> <div class="span12">
<iframe width="853" height="480" src="http://www.youtube.com/embed/llpr5924N7E" frameborder="0" allowfullscreen></iframe> <iframe width="853" height="480" src="https://www.youtube.com/embed/llpr5924N7E" frameborder="0" allowfullscreen></iframe>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="span12"> <div class="span12">
<p>The REST architectural style describes six constraints. These constraints, applied to the architecture, were originally communicated by Roy Fielding in his doctoral dissertation (see <a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm" target="_blank">http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm</a>) and defines the basis of RESTful-style.</p> <p>The REST architectural style describes six constraints. These constraints, applied to the architecture, were originally communicated by Roy Fielding in his doctoral dissertation (see <a href="https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm" target="_blank">https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm</a>) and defines the basis of RESTful-style.</p>
<p><strong>The six constraints are: (click the constraint to read more)</strong></p> <p><strong>The six constraints are: (click the constraint to read more)</strong></p>
<ul id="constraint-accordian"> <ul id="constraint-accordian">
<li><a data-toggle="collapse" data-target="#uniform-interface" data-parent="#constraint-accordian" href="#">Uniform Interface</a> <li><a data-toggle="collapse" data-target="#uniform-interface" data-parent="#constraint-accordian" href="#">Uniform Interface</a>
@ -145,14 +145,14 @@
</div> </div>
<hr> <hr>
<footer> <footer>
<p><a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />This work by <a xmlns:cc="http://creativecommons.org/ns#" href="http://www.restapitutorial.com/" property="cc:attributionName" rel="cc:attributionURL">RestApiTutorial.com</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.</p> <p><a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />This work by <a xmlns:cc="https://creativecommons.org/ns#" href="https://www.restapitutorial.com/" property="cc:attributionName" rel="cc:attributionURL">RestApiTutorial.com</a> is licensed under a <a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.</p>
</footer> </footer>
</div> <!-- /container --> </div> <!-- /container -->
<div class="navbar navbar-fixed-top"> <div class="navbar navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container"> <div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a> <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a>
<a class="brand" href="http://www.restapitutorial.com">REST API Tutorial</a> <a class="brand" href="https://www.restapitutorial.com">REST API Tutorial</a>
<div class="nav-collapse"> <div class="nav-collapse">
<ul class="nav"> <ul class="nav">
<li><a href="../index.html">Home</a></li> <li><a href="../index.html">Home</a></li>

View File

@ -69,7 +69,7 @@
<h1>REST API Resources</h1> <h1>REST API Resources</h1>
<h2>Translations</h2> <h2>Translations</h2>
<dl> <dl>
<dt><a href="http://www.restapitutorial.ru/">Russian</a></dt> <dt><a href="https://www.restapitutorial.ru/">Russian</a></dt>
<dd><a href="http://www.restapitutorial.ru/">http://www.restapitutorial.ru/</a></dd> <dd><a href="http://www.restapitutorial.ru/">http://www.restapitutorial.ru/</a></dd>
</dl> </dl>
<h2>REST API Cheat Sheets</h2> <h2>REST API Cheat Sheets</h2>
@ -89,24 +89,24 @@
<p><a href="https://github.com/RestExpress/RestExpress">RestExpress</a> (GitHub). A microservices framework for Java, RestExpress composes best-of-breed tools to form a lightweight, minimalist Java framework for quickly creating RESTful APIs.</p> <p><a href="https://github.com/RestExpress/RestExpress">RestExpress</a> (GitHub). A microservices framework for Java, RestExpress composes best-of-breed tools to form a lightweight, minimalist Java framework for quickly creating RESTful APIs.</p>
<h2>Web Resources</h2> <h2>Web Resources</h2>
<ul> <ul>
<li><a href="http://www.youtube.com/user/restapitutorial">REST API Tutorial YouTube Channel</a></li> <li><a href="https://www.youtube.com/user/restapitutorial">REST API Tutorial YouTube Channel</a></li>
<li><a href="http://www.toddfredrich.com">Todd Fredrich's Blog</a></li> <li><a href="http://www.toddfredrich.com">Todd Fredrich's Blog</a></li>
</ul> </ul>
</div> </div>
</div> </div>
<hr> <hr>
<footer> <footer>
<p><a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />This work by <a xmlns:cc="http://creativecommons.org/ns#" href="http://www.restapitutorial.com/" property="cc:attributionName" rel="cc:attributionURL">RestApiTutorial.com</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.</p> <p><a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />This work by <a xmlns:cc="https://creativecommons.org/ns#" href="https://www.restapitutorial.com/" property="cc:attributionName" rel="cc:attributionURL">RestApiTutorial.com</a> is licensed under a <a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.</p>
</footer> </footer>
</div> <!-- /container --> </div> <!-- /container -->
<div class="navbar navbar-fixed-top"> <div class="navbar navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container"> <div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a> <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a>
<a class="brand" href="http://www.restapitutorial.com">REST API Tutorial</a> <a class="brand" href="https://www.restapitutorial.com">REST API Tutorial</a>
<div class="nav-collapse"> <div class="nav-collapse">
<ul class="nav"> <ul class="nav">
<li><a href="http://www.restapitutorial.com">Home</a></li> <li><a href="https://www.restapitutorial.com">Home</a></li>
<li class="dropdown" id="api-school"><a class="dropdown-toggle" data-toggle="dropdown" href="#">Tutorials<b class="caret"></b></a> <li class="dropdown" id="api-school"><a class="dropdown-toggle" data-toggle="dropdown" href="#">Tutorials<b class="caret"></b></a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li><a href="lessons/whatisrest.html">What Is REST?</a></li> <li><a href="lessons/whatisrest.html">What Is REST?</a></li>

View File

@ -137,10 +137,10 @@ valueOf()+(h?'&utmxhash='+escape(h.substr(1)):'')+
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container"> <div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a> <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a>
<a class="brand" href="http://www.restapitutorial.com">REST API Tutorial</a> <a class="brand" href="https://www.restapitutorial.com">REST API Tutorial</a>
<div class="nav-collapse"> <div class="nav-collapse">
<ul class="nav"> <ul class="nav">
<li><a href="http://www.restapitutorial.com">Home</a></li> <li><a href="https://www.restapitutorial.com">Home</a></li>
<li class="dropdown" id="api-school"><a class="dropdown-toggle" data-toggle="dropdown" href="#">Tutorials<b class="caret"></b></a> <li class="dropdown" id="api-school"><a class="dropdown-toggle" data-toggle="dropdown" href="#">Tutorials<b class="caret"></b></a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li><a href="lessons/whatisrest.html">What Is REST?</a></li> <li><a href="lessons/whatisrest.html">What Is REST?</a></li>

View File

@ -1,7 +1,7 @@
<html> <html>
<head> <head>
<title>Moved to new URL: http://www.restapitutorial.com/lessons/restquicktips.html</title> <title>Moved to new URL: https://www.restapitutorial.com/lessons/restquicktips.html</title>
<meta http-equiv=refresh content="0; url=http://www.restapitutorial.com/lessons/restquicktips.html" /> <meta http-equiv=refresh content="0; url=https://www.restapitutorial.com/lessons/restquicktips.html" />
<meta name="robots" content="noindex,follow" /> <meta name="robots" content="noindex,follow" />
<!-- Facebook Pixel Code --> <!-- Facebook Pixel Code -->
<script> <script>
@ -22,9 +22,9 @@
<!-- End Facebook Pixel Code --> <!-- End Facebook Pixel Code -->
</head> </head>
<body> <body>
<h1>This page has been moved to http://www.restapitutorial.com/lessons/restquicktips.html</h1> <h1>This page has been moved to https://www.restapitutorial.com/lessons/restquicktips.html</h1>
<p>If your browser doesn't redirect you to the new location please <p>If your browser doesn't redirect you to the new location please
<a href="http://www.restapitutorial.com/lessons/restquicktips.html"><strong>click here</strong></a>, <a href="https://www.restapitutorial.com/lessons/restquicktips.html"><strong>click here</strong></a>,
sorry for the hassles!</p> sorry for the hassles!</p>
</body> </body>
</html> </html>

View File

@ -1,47 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<urlset <urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns="https://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 xsi:schemaLocation="https://www.sitemaps.org/schemas/sitemap/0.9
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> https://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<url> <url>
<loc>http://www.restapitutorial.com/</loc> <loc>https://www.restapitutorial.com/</loc>
<lastmod>2018-06-10T12:55:39+00:00</lastmod> <lastmod>2018-07-03T12:55:39+00:00</lastmod>
</url> </url>
<url> <url>
<loc>http://www.restapitutorial.com/lessons/whatisrest.html</loc> <loc>https://www.restapitutorial.com/lessons/whatisrest.html</loc>
<lastmod>2015-01-14T12:55:39+00:00</lastmod> <lastmod>2015-01-14T12:55:39+00:00</lastmod>
</url> </url>
<url> <url>
<loc>http://www.restapitutorial.com/lessons/restquicktips.html</loc> <loc>https://www.restapitutorial.com/lessons/restquicktips.html</loc>
<lastmod>2017-12-29T21:54:09+07:00</lastmod> <lastmod>2017-12-29T21:54:09+07:00</lastmod>
</url> </url>
<url> <url>
<loc>http://www.restapitutorial.com/lessons/httpmethods.html</loc> <loc>https://www.restapitutorial.com/lessons/httpmethods.html</loc>
<lastmod>2017-05-12T12:55:39+00:00</lastmod> <lastmod>2017-05-12T12:55:39+00:00</lastmod>
</url> </url>
<url> <url>
<loc>http://www.restapitutorial.com/lessons/restfulresourcenaming.html</loc> <loc>https://www.restapitutorial.com/lessons/restfulresourcenaming.html</loc>
<lastmod>2017-12-29T12:55:39+00:00</lastmod> <lastmod>2017-12-29T12:55:39+00:00</lastmod>
</url> </url>
<url> <url>
<loc>http://www.restapitutorial.com/lessons/idempotency.html</loc> <loc>https://www.restapitutorial.com/lessons/idempotency.html</loc>
<lastmod>2015-02-14T12:55:39+00:00</lastmod> <lastmod>2015-02-14T12:55:39+00:00</lastmod>
</url> </url>
<url> <url>
<loc>http://www.restapitutorial.com/httpstatuscodes.html</loc> <loc>https://www.restapitutorial.com/httpstatuscodes.html</loc>
<lastmod>2017-05-12T12:55:39+00:00</lastmod> <lastmod>2017-05-12T12:55:39+00:00</lastmod>
</url> </url>
<url> <url>
<loc>http://www.restapitutorial.com/resources.html</loc> <loc>https://www.restapitutorial.com/resources.html</loc>
<lastmod>2015-02-14T12:55:39+00:00</lastmod> <lastmod>2015-02-14T12:55:39+00:00</lastmod>
</url> </url>
<url> <url>
<loc>http://www.restapitutorial.com/index.html</loc> <loc>https://www.restapitutorial.com/index.html</loc>
<lastmod>2018-06-10T12:55:39+00:00</lastmod> <lastmod>2018-07-03T12:55:39+00:00</lastmod>
</url> </url>
<url> <url>
<loc>http://www.restapitutorial.com/restapiwebinar.html</loc> <loc>https://www.restapitutorial.com/restapiwebinar.html</loc>
<lastmod>2018-06-10T12:55:39+00:00</lastmod> <lastmod>2018-06-10T12:55:39+00:00</lastmod>
</url> </url>
</urlset> </urlset>