iris/_examples
kataras 056f9a9415 Update to 8.2.1 | LevelDB-based session database implemented, Read HISTORY.md
Former-commit-id: 4e341b185aedaaa9a04fdebe43b4364dec59e3c8
2017-08-08 16:00:34 +03:00
..
authentication Add notes for the new lead maintainer of the open-source iris project and align with @get-ion/ion by @hiveminded 2017-07-10 18:32:42 +03:00
cache/simple move sessions and websocket examples, gofmt, fix misspells and experimental optimizations 🍐 2017-07-22 22:57:20 +03:00
configuration Update to 8.2.0 | BoltDB session database, fix file sessiondb, faster, simpler and improvement Session Database API 2017-08-07 06:04:35 +03:00
convert-handlers Add notes for the new lead maintainer of the open-source iris project and align with @get-ion/ion by @hiveminded 2017-07-10 18:32:42 +03:00
file-server fix https://github.com/kataras/iris/issues/683#issuecomment-317229068 2017-07-23 12:10:51 +03:00
hello-world Nothing serious yet, thinking new features with the team, post some to help us! 2017-07-30 19:47:50 +03:00
http_request Update to 8.1.0 - a new logger implemented as a solution for https://github.com/kataras/iris/issues/680 2017-07-26 15:30:20 +03:00
http_responsewriter move sessions and websocket examples, gofmt, fix misspells and experimental optimizations 🍐 2017-07-22 22:57:20 +03:00
http-listening Update to 8.2.0 | BoltDB session database, fix file sessiondb, faster, simpler and improvement Session Database API 2017-08-07 06:04:35 +03:00
miscellaneous Update to 8.1.0 - a new logger implemented as a solution for https://github.com/kataras/iris/issues/680 2017-07-26 15:30:20 +03:00
overview Better documentation for the Application#Logger() 2017-08-02 04:22:15 +03:00
routing Update to 8.2.0 | BoltDB session database, fix file sessiondb, faster, simpler and improvement Session Database API 2017-08-07 06:04:35 +03:00
sessions Update to 8.2.1 | LevelDB-based session database implemented, Read HISTORY.md 2017-08-08 16:00:34 +03:00
subdomains Add notes for the new lead maintainer of the open-source iris project and align with @get-ion/ion by @hiveminded 2017-07-10 18:32:42 +03:00
testing/httptest Add notes for the new lead maintainer of the open-source iris project and align with @get-ion/ion by @hiveminded 2017-07-10 18:32:42 +03:00
tutorial Split in three the _examples/tutorial/url-shortener and add the link of the updated article 2017-07-11 19:09:08 +03:00
view Add notes for the new lead maintainer of the open-source iris project and align with @get-ion/ion by @hiveminded 2017-07-10 18:32:42 +03:00
websocket Update to 8.1.0 - a new logger implemented as a solution for https://github.com/kataras/iris/issues/680 2017-07-26 15:30:20 +03:00
README.md Update to 8.2.0 | BoltDB session database, fix file sessiondb, faster, simpler and improvement Session Database API 2017-08-07 06:04:35 +03:00

Examples

Please do learn how net/http std package works, first.

This folder provides easy to understand code snippets on how to get started with iris micro web framework.

It doesn't always contain the "best ways" but it does cover each important feature that will make you so excited to GO with iris!

Overview

HTTP Listening

Configuration

Routing, Grouping, Dynamic Path Parameters, "Macros" and Custom Context

  • app.Get("{userid:int min(1)}", myHandler)
  • app.Post("{asset:path}", myHandler)
  • app.Put("{custom:string regexp([a-z]+)}", myHandler)

Note: unlike other routers you'd seen, iris' router can handle things like these:

// Matches all GET requests prefixed with "/assets/"
app.Get("/assets/{asset:path}", assetsWildcardHandler)

// Matches only GET "/"
app.Get("/", indexHandler)
// Matches only GET "/about"
app.Get("/about", aboutHandler)

// Matches all GET requests prefixed with "/profile/"
// and followed by a single path part
app.Get("/profile/{username:string}", userHandler)
// Matches only GET "/profile/me" because 
// it does not conflict with /profile/{username:string}
// or the root wildcard {root:path}
app.Get("/profile/me", userHandler)

// Matches all GET requests prefixed with /users/
// and followed by a number which should be equal or bigger than 1
app.Get("/user/{userid:int min(1)}", getUserHandler)
// Matches all requests DELETE prefixed with /users/
// and following by a number which should be equal or bigger than 1
app.Delete("/user/{userid:int min(1)}", deleteUserHandler)

// Matches all GET requests except "/", "/about", anything starts with "/assets/" etc...
// because it does not conflict with the rest of the routes.
app.Get("{root:path}", rootWildcardHandler)

Navigate through examples for a better understanding.

Subdomains

Convert http.Handler/HandlerFunc

View

Engine Declaration
template/html iris.HTML(...)
django iris.Django(...)
handlebars iris.Handlebars(...)
amber iris.Amber(...)
pug(jade) iris.Pug(...)

You can serve quicktemplate files too, simply by using the context#ResponseWriter, take a look at the http_responsewriter/quicktemplate example.

Authentication

File Server

How to Read from context.Request() *http.Request

The context.Request() returns the same *http.Request you already know, these examples show some places where the Context uses this object. Besides that you can use it as you did before iris.

How to Write to context.ResponseWriter() http.ResponseWriter

The context.ResponseWriter() returns an enchament version of a http.ResponseWriter, these examples show some places where the Context uses this object. Besides that you can use it as you did before iris.

Miscellaneous

More

https://github.com/kataras/iris/tree/master/middleware#third-party-handlers

Testing

The httptest package is your way for end-to-end HTTP testing, it uses the httpexpect library created by our friend, gavv.

Example

Caching

iris cache library lives on its own package.

You're free to use your own favourite caching package if you'd like so.

Sessions

iris session manager lives on its own package.

You're free to use your own favourite sessions package if you'd like so.

Websockets

iris websocket library lives on its own package.

You're free to use your own favourite websockets package if you'd like so.

Typescript Automation Tools

typescript automation tools have their own repository: https://github.com/kataras/iris/tree/master/typescript it contains examples

I'd like to tell you that you can use your favourite but I don't think you will find such a thing anywhere else.

Hey, You!

Developers should read the godocs for a better understanding.

Psst, I almost forgot; do not forget to star or watch the project in order to stay updated with the latest tech trends, it never takes more than a second!