Skip to content
mythz edited this page Mar 23, 2013 · 4 revisions

The Dart project is an exciting new initiative from Google that helps you build and maintain large structured modern web apps. It comes with all batteries included, including a comprehensive library, rich Eclipse and JetBrains IDE's, built-in debugging in Dartium and Chrome (with source maps) and is being developed by many of the top talent behind Googles world-leading V8 JavaScript engine and the comprehensive GWT toolkit.

As we expect Dart to prove to be a popular web platform target in future, we've jumped in early and have developed a flexible Dart JsonClient that allows you to effortlessly consume ServiceStack JSON services in idiomatic Dart. The client takes advantage of some of Dart's features like noSuchMethod and Future<T> to provide a natural and easy to use API, E.g:

var client = new JsonClient("http://www.servicestack.net/Backbone.Todos");

client.todos()    //GET /todos

client.todos(1)   //GET /todos/1

//POST /todos ...
client.todos({'content':'Add a new TODO!', 'order':1})

//PUT /todos/1 ...
client.put('todos/1', {"content":"Learn Dart","done":true})  

//DELETE /todos/1
client.delete('todos/1')

//GET /files/services/FilesService.cs.txt
client.files("services/FilesService.cs.txt") 
  .then( (fileInfo) => ... )

//Handling responses with Futures
client.todos(1)
  .then( (todo) => ... )       

Using callbacks

The JavaScript idiom of using callbacks for handling async callbacks is still supported:

client.todos(1, (todo) => ...)  //Handling responses with callbacks

But this is discouraged in Dart, whose async APIs all return Futures.



  1. Getting Started
    1. Create your first webservice
    2. Your first webservice explained
    3. ServiceStack's new API Design
    4. Designing a REST-ful service with ServiceStack
    5. Example Projects Overview
  2. Reference
    1. Order of Operations
    2. The IoC container
    3. Metadata page
    4. Rest, SOAP & default endpoints
    5. SOAP support
    6. Routing
    7. Service return types
    8. Customize HTTP Responses
    9. Plugins
    10. Validation
    11. Error Handling
    12. Security
  3. Clients
    1. Overview
    2. C# client
    3. Silverlight client
    4. JavaScript client
    5. Dart Client
    6. MQ Clients
  4. Formats
    1. Overview
    2. JSON/JSV and XML
    3. ServiceStack's new HTML5 Report Format
    4. ServiceStack's new CSV Format
    5. MessagePack Format
    6. ProtoBuf Format
  5. View Engines 4. Razor & Markdown Razor
    1. Markdown Razor
  6. Hosts
    1. IIS
    2. Self-hosting
    3. Mono
  7. Advanced
    1. Configuration options
    2. Access HTTP specific features in services
    3. Logging
    4. Serialization/deserialization
    5. Request/response filters
    6. Filter attributes
    7. Concurrency Model
    8. Built-in caching options
    9. Built-in profiling
    10. Messaging and Redis
    11. Form Hijacking Prevention
    12. Auto-Mapping
    13. HTTP Utils
    14. Virtual File System
    15. Config API
    16. Physical Project Structure
    17. Modularizing Services
  8. Plugins
    1. Sessions
    2. Authentication/authorization
    3. Request logger
    4. Swagger API
  9. Tests
    1. Testing
    2. HowTo write unit/integration tests
  10. Other Languages
    1. FSharp
    2. VB.NET
  11. Use Cases
    1. Single Page Apps
    2. Azure
    3. Logging
    4. Bundling and Minification
    5. NHibernate
  12. Performance
    1. Real world performance
  13. How To
    1. Sending stream to ServiceStack
    2. Setting UserAgent in ServiceStack JsonServiceClient
    3. ServiceStack adding to allowed file extensions
    4. Default web service page how to
  14. Future
    1. Roadmap
Clone this wiki locally