!!! Overview [{$pagename}] ([CRUD]) are typical [data] operations that could be performed regardless of the [protocol]. [{$pagename}] Originally was applied to [SQL] Operations. !! [{$pagename}] for [SQL] and [HTTP] / [REST] [1] %%zebra-table %%sortable %%table-filter ||Operation||[SQL]||[HTTP]/[REST]|[LDAP]|[Linux Files and File Permissions] |[Create]|INSERT|[PUT|HTTP PUT] / [POST|HTTP POST]|[Add Request]|write |[Read]|SELECT|[GET|HTTP GET]|[Search Request]/[SearchResultEntry]|[read] |[Update]|UPDATE|[PUT|HTTP PUT] / [POST|HTTP POST] / [PATCH|HTTP PATCH]|[Modify Request]|write |[Delete]|DELETE|[DELETE|HTTP DELETE]|[Delete Request]|write /% /% /% Though [HTTP GET] and [HTTP DELETE] coordinate well, [HTTP POST], [HTTP PUT], and [HTTP PATCH] aren’t directly synonymous with a single [CRUD] operation. For [example], [HTTP POST] doesn’t necessarily only mean “Create”. It’s actually a very versatile method — so versatile that the entire [SOAP] [protocol] is tunneled through the [HTTP POST] method when used with [HTTP]. Since [HTTP Methods] don’t map cleanly to [CRUD], Ulsberg argues that [API] providers should consider how they might describe their [APIs] in a different way: ''"Don’t limit yourself to [CRUD] when you design a [REST] [API]. You should read the specification and understand the semantics of each method, and use it properly."'' What it comes down to is that [REST] is an architectural style, not a [protocol]. !! [CRUDX Specification] The [CRUDX] specification string is similar to the [UNIX] [File System] model where each specification is a [Bit String]-array of length 5 where each element of the array represents the corresponding [permission] level and can be set to * 1 (allowed) * 0 (not allowed) This can be displayed as a 5-character string where each character is either the first letter of the [permission] level's name (allowed) or a hyphen (not allowed); hyphens can optionally be omitted (e.g. C--DX == CDX. Since the representation is an ordered list, a [permission] can also be specified as an unsigned, 5-bit [integer] (e.g. C--DX == 25). %%zebra-table %%sortable %%table-filter ||Description||String||Integer |Full [Permissions]|CRUDX|31 |Null [Permissions]|-----|0 |[Read] Only|-R---|2 |[Read] & Execute|-R--X|18 /% /% /% %%information The [CRUDX] specification proposal could be confusing because the [integer] values of each permission level __do NOT match__ the [UNIX] levels; they are not even ordered from least to most dangerous. %% !! More Information There might be more information for this subject on one of the following: [{ReferringPagesPlugin before='*' after='\n' }] ---- * [#1] - [Designing a True REST State Machine|http://nordicapis.com/designing-a-true-rest-state-machine/|target='_blank'] - based on information obtained 2017-02-02- * [#2] - [Create Read Update Delete (CRUD)|Wikipedia:Create,_read,_update_and_delete|target='_blank']- based on information obtained 2015-02-02-