<story><title>Microsoft REST API Guidelines</title><url>https://github.com/Microsoft/api-guidelines/blob/master/Guidelines.md</url></story><parent_chain><item><author>jedberg</author><text>Every single person writing a REST api should have to memorize this table:&lt;p&gt;GET - Return the current value of an object, is idempotent;&lt;p&gt;PUT - Replace an object, or create a named object, when applicable, is idempotent;&lt;p&gt;DELETE - Delete an object, is idempotent;&lt;p&gt;POST - Create a new object based on the data provided, or submit a command, NOT idempotent;&lt;p&gt;HEAD - Return metadata of an object for a GET response. Resources that support the GET method MAY support the HEAD method as well, is idempotent;&lt;p&gt;PATCH - Apply a partial update to an object, NOT idempotent;&lt;p&gt;OPTIONS - Get information about a request, is idempotent.&lt;p&gt;Most importantly, that PUT is idempotent.&lt;p&gt;Credit to arkadiytehgraet for retyping the table to be readable.  Please give them an upvote for the effort.</text></item></parent_chain><comment><author>arkadiytehgraet</author><text>Every single person writing a comment on Hacker News should have to memorize this rule:&lt;p&gt;&lt;i&gt;Never&lt;/i&gt; use code formatting for text, as it makes it unreadable on the mobile devices.&lt;p&gt;For my own (and others&amp;#x27;) convenience, here is unformatted rule table from parent comment:&lt;p&gt;GET - Return the current value of an object, is idempotent;&lt;p&gt;PUT - Replace an object, or create a named object, when applicable, is idempotent;&lt;p&gt;DELETE - Delete an object, is idempotent;&lt;p&gt;POST - Create a new object based on the data provided, or submit a command, NOT idempotent;&lt;p&gt;HEAD - Return metadata of an object for a GET response. Resources that support the GET method MAY support the HEAD method as well, is idempotent;&lt;p&gt;PATCH - Apply a partial update to an object, NOT idempotent;&lt;p&gt;OPTIONS - Get information about a request, is idempotent.</text></comment>
<story><title>Microsoft REST API Guidelines</title><url>https://github.com/Microsoft/api-guidelines/blob/master/Guidelines.md</url></story><parent_chain><item><author>jedberg</author><text>Every single person writing a REST api should have to memorize this table:&lt;p&gt;GET - Return the current value of an object, is idempotent;&lt;p&gt;PUT - Replace an object, or create a named object, when applicable, is idempotent;&lt;p&gt;DELETE - Delete an object, is idempotent;&lt;p&gt;POST - Create a new object based on the data provided, or submit a command, NOT idempotent;&lt;p&gt;HEAD - Return metadata of an object for a GET response. Resources that support the GET method MAY support the HEAD method as well, is idempotent;&lt;p&gt;PATCH - Apply a partial update to an object, NOT idempotent;&lt;p&gt;OPTIONS - Get information about a request, is idempotent.&lt;p&gt;Most importantly, that PUT is idempotent.&lt;p&gt;Credit to arkadiytehgraet for retyping the table to be readable.  Please give them an upvote for the effort.</text></item></parent_chain><comment><author>JMTQp8lwXL</author><text>There should be an option for deleting many objects. For that, you have to do a POST request on AWS S3:&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;docs.aws.amazon.com&amp;#x2F;AmazonS3&amp;#x2F;latest&amp;#x2F;API&amp;#x2F;API_DeleteObjects.html&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;docs.aws.amazon.com&amp;#x2F;AmazonS3&amp;#x2F;latest&amp;#x2F;API&amp;#x2F;API_DeleteOb...&lt;/a&gt;&lt;p&gt;Instead of polluting existing method names to mean new things, HTTP could offer more method names.&lt;p&gt;Having POST alternatively mean &amp;quot;send a command&amp;quot; makes it meaningless. The command could do anything.</text></comment>