Your SlideShare is downloading. ×
0
Spray & Maven Intro for Scala Barcelona Developers Meetup
Spray & Maven Intro for Scala Barcelona Developers Meetup
Spray & Maven Intro for Scala Barcelona Developers Meetup
Spray & Maven Intro for Scala Barcelona Developers Meetup
Spray & Maven Intro for Scala Barcelona Developers Meetup
Spray & Maven Intro for Scala Barcelona Developers Meetup
Spray & Maven Intro for Scala Barcelona Developers Meetup
Spray & Maven Intro for Scala Barcelona Developers Meetup
Spray & Maven Intro for Scala Barcelona Developers Meetup
Spray & Maven Intro for Scala Barcelona Developers Meetup
Spray & Maven Intro for Scala Barcelona Developers Meetup
Spray & Maven Intro for Scala Barcelona Developers Meetup
Spray & Maven Intro for Scala Barcelona Developers Meetup
Spray & Maven Intro for Scala Barcelona Developers Meetup
Spray & Maven Intro for Scala Barcelona Developers Meetup
Spray & Maven Intro for Scala Barcelona Developers Meetup
Spray & Maven Intro for Scala Barcelona Developers Meetup
Spray & Maven Intro for Scala Barcelona Developers Meetup
Spray & Maven Intro for Scala Barcelona Developers Meetup
Spray & Maven Intro for Scala Barcelona Developers Meetup
Spray & Maven Intro for Scala Barcelona Developers Meetup
Spray & Maven Intro for Scala Barcelona Developers Meetup
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Spray & Maven Intro for Scala Barcelona Developers Meetup

1,999

Published on

As a response to previous meetup here's a simple JSON/REST implementation with a complete different set of tools.

As a response to previous meetup here's a simple JSON/REST implementation with a complete different set of tools.

Published in: Technology, Health & Medicine
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,999
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. A RESTy-JSON APIwith spray.io and mavensponsored by special appearanceIgnasi Marimon-Clos i Sunyol@ignasi35#scalabcnSunday, June 16, 13
  • 2. thanks!Sunday, June 16, 13
  • 3. special thank you’sJPradel (@agile_jordi): review and organizationJCasadellà (@jcasadella): reviewJRudolph for simplifying step 4https://github.com/jrudolph/scala-meetup-spray/commit/c4991938ec7b26b183d701aac73949e7822cf45eSunday, June 16, 13
  • 4. about men. /iŋnazi/1) problem solver, Garbage Collector, mostlyjava, learning scala, some agile2) kayaker3) under construction4) wears glassesSunday, June 16, 13
  • 5. what we saw• BDD (cucumber)• TDD (scalatest)• sbt (inifinite run)• intelliJ• JAX-RS• Jettyhttps://github.com/funcio/bdd-jaxrs-hands-onSunday, June 16, 13
  • 6. what we’ll see• BDD (cucumber)• TDD (scalatest)• sbt (inifinite run)• intelliJ• JAX-RS• Jetty• BDD (jbehave?)• TDD (scalatest)• mvn (infinite run)• eclipse (worksheet)• spray-can/https/...• spray-jsonhttps://github.com/ignasi35/scala-meetup-spraySunday, June 16, 13
  • 7. why? (1/2)• I’m comfy with eclipse• I’m comfy with maven (I know that’s weird)• (no more)Typesafe delivers a prepacked env• still there s/where• eclipse-maven integration is solid• I needed infinite-test in maven at work• I like trolling Jordi and JoseSunday, June 16, 13
  • 8. why? (2/2)• spray.io has akka• spray 1.x has akka 2.x• spray.io is modularized (that’s useful)• I don’t need java API (@see play)• spray-json is f*&[ing simple (via shapeless)http://spray.io/project-info/current-versions/Sunday, June 16, 13
  • 9. why? (bonus)• spray.io beats all other JVM stacks/fw (*)http://www.techempower.com/benchmarks/Sunday, June 16, 13
  • 10. spraymodulesprovidedprovidedThere’s more provided dep’sthan those labelled but we don’tneed that level of detail now.credit: graphic made using yuml.mehttp://yuml.me/diagram/scruffy/class/[A]->[B],[A]->[C],[B]->[C]Sunday, June 16, 13
  • 11. spray• One thing done right• spray-routing => simple entry point.• @sirthias (Mathias Doenitz) in Akka 2.2• magnet pattern• alternate to method overload• IOBridge, directives, Marshallers, ...???Sunday, June 16, 13
  • 12. Sunday, June 16, 13
  • 13. step 1• Given an HTTP server• When I GET /hello• Then I obtain “hello”Sunday, June 16, 13
  • 14. step 1 (tips)• Edit a web.xml• Create a mapping• Provide a BeanConnectionBeanFactory• Add a servers.xml• Invoke the Olds Gods and the NewSunday, June 16, 13
  • 15. specially dedicated to @ch4litSunday, June 16, 13
  • 16. step 2• Given an HTTP server• When I GET /hello.json• Then I obtain “{msg:‘world’}”Sunday, June 16, 13
  • 17. directives + complete• path/pathPrefix/pathTest• authenticate• get/post/delete/...• decodeRequest/encodeResponse/...• cache/alwaysCache/...• completehttp://spray.io/documentation/spray-routing/predefined-directives-alphabetically/Sunday, June 16, 13
  • 18. step 3• Given an HTTP server• When I GET /books.json• Then I obtain the complete books stockSunday, June 16, 13
  • 19. step 4• Given an HTTP server• And I POST a book.txt in /books• When I GET /books.json• Then I obtain the updated books stockMEGA-KUDOS tohttps://github.com/jrudolphSunday, June 16, 13
  • 20. step 5• Given an HTTP server• And a programmatic HTTP client• When I GET /hello.json• Then I obtain “{msg:‘world’}”Sunday, June 16, 13
  • 21. conclusions• scala in maven is tough• mvn plugin lacks infini-run, infini-install,...• scala worksheet rocks• spray allows a quick entry point• docs and examples still to be improved• because I’m very dumb• ...Sunday, June 16, 13
  • 22. thanks!Sunday, June 16, 13

×