This page (revision-1) was last changed on 29-Nov-2024 16:16 by UnknownAuthor

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 1 added 54 lines
!!! 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-