diff options
| author | Kevin Keuning <kkeuning@gmail.com> | 2017-03-10 02:06:42 -0600 |
|---|---|---|
| committer | Kevin Keuning <kkeuning@gmail.com> | 2017-03-10 02:06:42 -0600 |
| commit | ba940e24fcac76b87ddd97fe5ebf722e842efb4c (patch) | |
| tree | c2e692b4d5aada3c35bb1701915dc1b21d393318 /examples/updateable/README.md | |
| parent | c9d2f7761088af120fe1dc12f8dd1044d60c1b03 (diff) | |
added updateable example
Diffstat (limited to 'examples/updateable/README.md')
| -rw-r--r-- | examples/updateable/README.md | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/examples/updateable/README.md b/examples/updateable/README.md new file mode 100644 index 0000000..1cc50f8 --- /dev/null +++ b/examples/updateable/README.md @@ -0,0 +1,31 @@ +# Updateable + +This example shows how to enable outside clients to update content to your CMS. +All content submitted must be done through a POST request encoded as `multipart/form-data` +to the API endpoint `/api/content/update?type=<Type>&id=<id>` + +## Song example +Imagine an app that lets users add Spotify music to a global playlist, and you need them +to supply songs in the format: +```go +type Song struct { + item.Item + + Title string `json:"title"` + Artist string `json:"artist"` + Rating int `json:"rating"` + Opinion string `json:"opinion"` + SpotifyURL string `json:"spotify_url"` +} +``` + +See the file `content/song.go` and read the comments to understand the various +methods needed to satisfy required interfaces for this kind of activity. + +### Overview +1. Implement `api.Updateable` with the `AcceptUpdate(http.ResponseWriter, *http.Request)` method to allow outside POST requests. +2. Consistent with the externalable example, authentication can be validated in `BeforeAcceptUdate(http.ResponseWriter, *http.Request)` + +There are various validation and request checks shown in this example as well. +Please feel free to modify and submit a PR for updates or bug fixes! + |
