Return to site

HTTP POST for reading (rather than HTTP GET)

ยท coding

REST design principles article sum-up๐Ÿ‘‡๐Ÿ‘‡๐Ÿ‘‡

I have lately been arguing about API REST Design good practices, and about the possibility to use a POST for reading data (due to URL peculiarity with special characters).

And my opinion was that a good practice can be infringed if it remains exceptional.

Here an answer from stack which complies with mine:

"๐ผ ๐‘ข๐‘ ๐‘’ ๐‘ƒ๐‘‚๐‘†๐‘‡ ๐‘๐‘œ๐‘‘๐‘ฆ ๐‘“๐‘œ๐‘Ÿ ๐‘Ž๐‘›๐‘ฆ๐‘กโ„Ž๐‘–๐‘›๐‘” ๐‘›๐‘œ๐‘›-๐‘ก๐‘Ÿ๐‘–๐‘ฃ๐‘–๐‘Ž๐‘™ ๐‘Ž๐‘›๐‘‘ ๐‘™๐‘–๐‘›๐‘’-๐‘œ๐‘“-๐‘๐‘ข๐‘ ๐‘–๐‘›๐‘’๐‘ ๐‘  ๐‘Ž๐‘๐‘๐‘  ๐‘“๐‘œ๐‘Ÿ ๐‘กโ„Ž๐‘’๐‘ ๐‘’ ๐‘Ÿ๐‘’๐‘Ž๐‘ ๐‘œ๐‘›๐‘ :

๐‘†๐‘’๐‘๐‘ข๐‘Ÿ๐‘–๐‘ก๐‘ฆ - ๐ผ๐‘“ ๐‘ค๐‘’ ๐‘ข๐‘ ๐‘’ ๐บ๐ธ๐‘‡ ๐‘ค๐‘–๐‘กโ„Ž ๐‘ž๐‘ข๐‘’๐‘Ÿ๐‘ฆ ๐‘ ๐‘ก๐‘Ÿ๐‘–๐‘›๐‘”๐‘  ๐‘Ž๐‘›๐‘‘ โ„Ž๐‘ก๐‘ก๐‘๐‘ , ๐‘กโ„Ž๐‘’ ๐‘ž๐‘ข๐‘’๐‘Ÿ๐‘ฆ ๐‘ ๐‘ก๐‘Ÿ๐‘–๐‘›๐‘”๐‘  ๐‘๐‘Ž๐‘› ๐‘๐‘’ ๐‘ ๐‘Ž๐‘ฃ๐‘’๐‘‘ ๐‘–๐‘› ๐‘ ๐‘’๐‘Ÿ๐‘ฃ๐‘’๐‘Ÿ ๐‘™๐‘œ๐‘”๐‘  ๐‘Ž๐‘›๐‘‘ ๐‘“๐‘œ๐‘Ÿ๐‘ค๐‘Ž๐‘Ÿ๐‘‘๐‘’๐‘‘ ๐‘Ž๐‘  ๐‘Ÿ๐‘’๐‘“๐‘’๐‘Ÿ๐‘Ÿ๐‘Ž๐‘™ ๐‘™๐‘–๐‘›๐‘˜๐‘ . ๐ต๐‘œ๐‘กโ„Ž ๐‘œ๐‘“ ๐‘กโ„Ž๐‘’๐‘ ๐‘’ ๐‘Ž๐‘Ÿ๐‘’ ๐‘›๐‘œ๐‘ค ๐‘ฃ๐‘–๐‘ ๐‘–๐‘๐‘™๐‘’ ๐‘๐‘ฆ ๐‘ ๐‘’๐‘Ÿ๐‘ฃ๐‘’๐‘Ÿ/๐‘›๐‘’๐‘ก๐‘ค๐‘œ๐‘Ÿ๐‘˜ ๐‘Ž๐‘‘๐‘š๐‘–๐‘›๐‘  ๐‘Ž๐‘›๐‘‘ ๐‘กโ„Ž๐‘’ ๐‘›๐‘’๐‘ฅ๐‘ก ๐‘‘๐‘œ๐‘š๐‘Ž๐‘–๐‘› ๐‘กโ„Ž๐‘’ ๐‘ข๐‘ ๐‘’๐‘Ÿ ๐‘ค๐‘’๐‘›๐‘ก ๐‘ก๐‘œ ๐‘Ž๐‘“๐‘ก๐‘’๐‘Ÿ ๐‘™๐‘’๐‘Ž๐‘ฃ๐‘–๐‘›๐‘” ๐‘ฆ๐‘œ๐‘ข๐‘Ÿ ๐‘Ž๐‘๐‘. ๐‘†๐‘œ ๐‘–๐‘“ ๐‘ค๐‘’ ๐‘ ๐‘’๐‘›๐‘‘ ๐‘Ž ๐‘ž๐‘ข๐‘’๐‘Ÿ๐‘ฆ ๐‘๐‘œ๐‘›๐‘ก๐‘Ž๐‘–๐‘›๐‘–๐‘›๐‘” ๐‘๐‘œ๐‘›๐‘“๐‘–๐‘‘๐‘’๐‘›๐‘ก๐‘–๐‘Ž๐‘™ ๐‘ƒ๐ผ๐ผ ๐‘‘๐‘Ž๐‘ก๐‘Ž ๐‘ ๐‘ข๐‘โ„Ž ๐‘Ž๐‘  ๐‘Ž ๐‘๐‘ข๐‘ ๐‘ก๐‘œ๐‘š๐‘’๐‘Ÿ'๐‘  ๐‘›๐‘Ž๐‘š๐‘’ ๐‘กโ„Ž๐‘–๐‘  ๐‘š๐‘Ž๐‘ฆ ๐‘›๐‘œ๐‘ก ๐‘๐‘’ ๐‘‘๐‘’๐‘ ๐‘–๐‘Ÿ๐‘’๐‘‘.

๐‘ˆ๐‘…๐ฟ ๐‘š๐‘Ž๐‘ฅ๐‘–๐‘š๐‘ข๐‘š ๐‘™๐‘’๐‘›๐‘”๐‘กโ„Ž - ๐‘๐‘œ๐‘ก ๐‘Ž ๐‘๐‘–๐‘” ๐‘–๐‘ ๐‘ ๐‘ข๐‘’, ๐‘๐‘ข๐‘ก ๐‘ ๐‘œ๐‘š๐‘’ ๐‘๐‘Ÿ๐‘œ๐‘ค๐‘ ๐‘’๐‘Ÿ๐‘  โ„Ž๐‘Ž๐‘ฃ๐‘’ ๐‘Ž ๐‘™๐‘–๐‘š๐‘–๐‘ก ๐‘œ๐‘› ๐‘กโ„Ž๐‘’ ๐‘™๐‘’๐‘›๐‘”๐‘กโ„Ž. ๐‘†๐‘œ ๐‘–๐‘“ ๐‘ค๐‘’ โ„Ž๐‘Ž๐‘ฃ๐‘’ ๐‘ ๐‘’๐‘ฃ๐‘’๐‘Ÿ๐‘Ž๐‘™ ๐‘–๐‘ก๐‘’๐‘š๐‘  ๐‘–๐‘› ๐‘œ๐‘ข๐‘Ÿ ๐‘ˆ๐‘…๐ฟ ๐‘™๐‘–๐‘˜๐‘’ ๐‘ž๐‘ข๐‘’๐‘Ÿ๐‘ฆ, ๐‘๐‘Ž๐‘”๐‘–๐‘›๐‘”, ๐‘“๐‘–๐‘’๐‘™๐‘‘๐‘  ๐‘ก๐‘œ ๐‘Ÿ๐‘’๐‘ก๐‘ข๐‘Ÿ๐‘›, ๐‘’๐‘ก๐‘....

๐‘ƒ๐‘‚๐‘†๐‘‡ ๐‘–๐‘  ๐‘›๐‘œ๐‘ก ๐‘๐‘Ž๐‘โ„Ž๐‘’๐‘‘ ๐‘๐‘ฆ ๐‘‘๐‘’๐‘“๐‘Ž๐‘ข๐‘™๐‘ก. ๐‘†๐‘œ๐‘š๐‘’ ๐‘ ๐‘Ž๐‘ฆ ๐‘๐‘Ž๐‘โ„Ž๐‘–๐‘›๐‘” ๐‘–๐‘  ๐‘‘๐‘’๐‘ ๐‘–๐‘Ÿ๐‘’๐‘‘; โ„Ž๐‘œ๐‘ค๐‘’๐‘ฃ๐‘’๐‘Ÿ, โ„Ž๐‘œ๐‘ค ๐‘œ๐‘“๐‘ก๐‘’๐‘› ๐‘–๐‘  ๐‘กโ„Ž๐‘Ž๐‘ก ๐‘’๐‘ฅ๐‘Ž๐‘๐‘ก ๐‘ ๐‘Ž๐‘š๐‘’ ๐‘ ๐‘’๐‘ก ๐‘œ๐‘“ ๐‘ ๐‘’๐‘Ž๐‘Ÿ๐‘โ„Ž ๐‘๐‘Ÿ๐‘–๐‘ก๐‘’๐‘Ÿ๐‘–๐‘Ž ๐‘“๐‘œ๐‘Ÿ ๐‘กโ„Ž๐‘Ž๐‘ก ๐‘’๐‘ฅ๐‘Ž๐‘๐‘ก ๐‘œ๐‘๐‘—๐‘’๐‘๐‘ก ๐‘“๐‘œ๐‘Ÿ ๐‘กโ„Ž๐‘Ž๐‘ก ๐‘’๐‘ฅ๐‘Ž๐‘๐‘ก ๐‘๐‘ข๐‘ ๐‘ก๐‘œ๐‘š๐‘’๐‘Ÿ ๐‘”๐‘œ๐‘–๐‘›๐‘” ๐‘ก๐‘œ ๐‘œ๐‘๐‘๐‘ข๐‘Ÿ ๐‘๐‘’๐‘“๐‘œ๐‘Ÿ๐‘’ ๐‘กโ„Ž๐‘’ ๐‘๐‘Ž๐‘โ„Ž๐‘’ ๐‘ก๐‘–๐‘š๐‘’๐‘  ๐‘œ๐‘ข๐‘ก ๐‘Ž๐‘›๐‘ฆ๐‘ค๐‘Ž๐‘ฆ?

๐ต๐‘‡๐‘Š, ๐ผ ๐‘Ž๐‘™๐‘ ๐‘œ ๐‘๐‘ข๐‘ก ๐‘กโ„Ž๐‘’ ๐‘“๐‘–๐‘’๐‘™๐‘‘๐‘  ๐‘ก๐‘œ ๐‘Ÿ๐‘’๐‘ก๐‘ข๐‘Ÿ๐‘› ๐‘–๐‘› ๐‘š๐‘ฆ ๐‘ƒ๐‘‚๐‘†๐‘‡ ๐‘๐‘œ๐‘‘๐‘ฆ ๐‘Ž๐‘  ๐ผ ๐‘š๐‘Ž๐‘ฆ ๐‘›๐‘œ๐‘ก ๐‘ค๐‘–๐‘ โ„Ž ๐‘ก๐‘œ ๐‘’๐‘ฅ๐‘๐‘œ๐‘ ๐‘’ ๐‘š๐‘ฆ ๐‘“๐‘–๐‘’๐‘™๐‘‘ ๐‘›๐‘Ž๐‘š๐‘’๐‘ . ๐‘†๐‘’๐‘๐‘ข๐‘Ÿ๐‘–๐‘ก๐‘ฆ ๐‘–๐‘  ๐‘™๐‘–๐‘˜๐‘’ ๐‘Ž๐‘› ๐‘œ๐‘›๐‘–๐‘œ๐‘›; ๐‘–๐‘ก โ„Ž๐‘Ž๐‘  ๐‘š๐‘Ž๐‘›๐‘ฆ ๐‘™๐‘Ž๐‘ฆ๐‘’๐‘Ÿ๐‘  ๐‘Ž๐‘›๐‘‘ ๐‘š๐‘Ž๐‘˜๐‘’๐‘  ๐‘ข๐‘  ๐‘๐‘Ÿ๐‘ฆ!"