doc/rest.txt
author Edward Pilatowicz <edward.pilatowicz@oracle.com>
Mon, 16 Sep 2013 21:26:31 -0700
changeset 2945 24196b483cc6
parent 1 3f1f244aa967
permissions -rw-r--r--
17461187 packagemanager displays unexpected error message
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
     1
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
     2
pkg
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
     3
Use of REST
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
     4
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
     5
We use REST over HTTP as the primary networking API between client and
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
     6
server.  That choice means that
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
     7
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
     8
- the client can be reimplemented,
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
     9
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    10
- the server can be reimplemented, and
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    11
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    12
- decorations on a transaction, like authentication, encryption, and
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    13
  redirection, can be handled using the enormous technology set around
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    14
  HTTP.
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    15
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    16
The first two are true of any well-defined protocol, but we benefit in
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    17
this case from the wide availability of HTTP client and server
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    18
implementation starting points.
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    19
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    20
Installer API:
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    21
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    22
GET /catalog
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    23
GET /version/pkg_name
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    24
GET /depend/pkg_name
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    25
GET /data/pkg_name[/from[/to]]
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    26
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    27
Packager API:
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    28
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    29
POST /trans/pkg_name
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    30
	Returning a transaction ID
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    31
POST /add/trans_id/type
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    32
	Plus metadata in submitted headers and contents as file body.
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    33
GET /summary/trans_id
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    34
POST /meta/trans_id/require
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    35
	Dependency metadata in submitted headers.
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    36
POST /commit/trans_id
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    37
	Returning package URL.
3f1f244aa967 begin adding design/implementation documents
sch@rosseau
parents:
diff changeset
    38