Wiki source code of ERRest Boot Camp
Last modified by Pascal Robert on 2012/05/16 19:16
Show last authors
author | version | line-number | content |
---|---|---|---|
1 | * What is REST | ||
2 | ** Consistent URLs | ||
3 | *** The goal is to have URLs that you can guess. | ||
4 | *** GitHub is a good case (http vs git protocols, paths, etc.) | ||
5 | ** Stateless | ||
6 | *** You can use sessions, but almost all client frameworks are stateless | ||
7 | ** Using HTTP protocol to full extend (methods, cache, status codes, headers, redirections) | ||
8 | *** Status codes | ||
9 | *** Verbs | ||
10 | *** Headers | ||
11 | ** Multiple representations of same object, but only one URL for object | ||
12 | ** HATEOAS mention | ||
13 | *** Google Docs, CMIS, Atom Publishing examples | ||
14 | * Basic ERRest concepts | ||
15 | ** routes | ||
16 | *** URLs | ||
17 | ** controllers | ||
18 | ** delegates | ||
19 | ** key filters | ||
20 | *** filter what going's in and out | ||
21 | * Using an existing model and explaining how it works | ||
22 | ** BlogEntry | ||
23 | *** title | ||
24 | *** content | ||
25 | *** dateInserted | ||
26 | *** dateModified | ||
27 | *** author | ||
28 | ** BlogAuthor | ||
29 | *** firstName | ||
30 | *** lastName | ||
31 | *** password | ||
32 | |||
33 | *** entries | ||
34 | ** BlogCategory | ||
35 | *** entries | ||
36 | *** name | ||
37 | * Basic REST routes (JSON) | ||
38 | ** adding a migration to create the admin user | ||
39 | ** adding a BlogAuthor user | ||
40 | ** adding a BlogEntry | ||
41 | ** getting a BlogEntry | ||
42 | ** modifying a BlogEntry | ||
43 | ** deleting a blogEntry | ||
44 | ** viewing a author and its posts (in XML) | ||
45 | * HTML REST routes | ||
46 | ** explain how URL are differents | ||
47 | ** automatic HTML routing vs manual | ||
48 | ** listing blog posts | ||
49 | ** listing authors | ||
50 | ** batching and sorting | ||
51 | * Better names: entity and attribute alias | ||
52 | * Having a fake primary key in a REST context (moving from ID to unique title) | ||
53 | * Handling status codes | ||
54 | ** 200&201 | ||
55 | ** 404&410 | ||
56 | *** Returning 410 for entries that were deleted | ||
57 | ** 405 | ||
58 | ** 50x | ||
59 | ** 401&403 | ||
60 | *** when trying to create blog entry without logged user | ||
61 | * Redirections | ||
62 | ** How to do them, codes 301 and 302 differences | ||
63 | * Adding headers to response | ||
64 | * Adding caching to the blog | ||
65 | * Adding non-EO support | ||
66 | * Adding keys for non-model attributes ("fullName") | ||
67 | * Date formats | ||
68 | ** er.rest.dateFormat | ||
69 | ** er.rest.timestampFormat | ||
70 | ** er.rest.rfcDateFormat | ||
71 | * JSON Schema | ||
72 | |||
73 | Talking about the problem of objectOfEntityWithID and ERXDatabaseContextDelegate.ObjectNotAvailableException | ||
74 | |||
75 | RestContext | ||
76 | Properties | ||
77 | Adding new format | ||
78 | Security | ||
79 | strictMode | ||
80 | Workflow |