Developing web apps with Haskell and Yesod: [safety-driven web development]
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Beijing ; Köln [u.a.]
O'Reilly
2015
|
Ausgabe: | 2. ed. |
Schlagworte: | |
Online-Zugang: | Inhaltstext Cover Inhaltsverzeichnis |
Beschreibung: | XIV, 392 S. Ill. |
ISBN: | 9781491915592 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV042569723 | ||
003 | DE-604 | ||
007 | t | ||
008 | 150519s2015 a||| |||| 00||| eng d | ||
016 | 7 | |a 1064277500 |2 DE-101 | |
020 | |a 9781491915592 |9 978-1-491-91559-2 | ||
035 | |a (OCoLC)906074566 | ||
035 | |a (DE-599)DNB1064277500 | ||
040 | |a DE-604 |b ger | ||
041 | 0 | |a eng | |
049 | |a DE-11 | ||
082 | 0 | |a 004 | |
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
100 | 1 | |a Snoyman, Michael |e Verfasser |0 (DE-588)1024217779 |4 aut | |
245 | 1 | 0 | |a Developing web apps with Haskell and Yesod |b [safety-driven web development] |c Michael Snoyman |
250 | |a 2. ed. | ||
264 | 1 | |a Beijing ; Köln [u.a.] |b O'Reilly |c 2015 | |
300 | |a XIV, 392 S. |b Ill. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 0 | 7 | |a Funktionale Programmiersprache |0 (DE-588)4129948-6 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a HASKELL |0 (DE-588)4318275-6 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Funktionale Programmierung |0 (DE-588)4198740-8 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Funktionale Programmierung |0 (DE-588)4198740-8 |D s |
689 | 0 | |5 DE-604 | |
689 | 1 | 0 | |a Funktionale Programmiersprache |0 (DE-588)4129948-6 |D s |
689 | 1 | |5 DE-604 | |
689 | 2 | 0 | |a HASKELL |0 (DE-588)4318275-6 |D s |
689 | 2 | |5 DE-604 | |
856 | 4 | 2 | |m X:MVB |q text/html |u http://deposit.dnb.de/cgi-bin/dokserv?id=5119294&prov=M&dok%5Fvar=1&dok%5Fext=htm |3 Inhaltstext |
856 | 4 | 2 | |m V:DE-576;X:oreilly |q image/jpeg |u http://swbplus.bsz-bw.de/bsz428117619cov.htm |3 Cover |
856 | 4 | 2 | |m HBZ Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=028003298&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-028003298 |
Datensatz im Suchindex
_version_ | 1806331346600067072 |
---|---|
adam_text |
Titel: Developing web apps with Haskell and Yesod
Autor: Snoyman, Michael
Jahr: 2015
Table of Contents Preface . xi Part 1. Basics 1. Introduction. . 17 Type Safety 17 Concise Code 18 Performance 18 Modularity 19 A Solid Foundation 19 2. Haskell . .21 Terminology 21 Tools 23 Language Pragmas 24 Overloaded Strings 24 Type Families 25 Template Haskell 26 QuasiQuotes 28 API Documentation 28 Summary 29 3. Basics. .31 Hello, World 31 Routing 32 Handler Function 34 The Foundation 34 iii
Running Resources and Type-Safe URLs Non-HTML Responses The Scaffolded Site Development Server Summary Chabacnaaraan Tomnlatoc . 35 35 37 37 38 38 . 39 Synopsis 39 Hamlet (HTML) 40 Lucius (CSS) 40 Cassius (CSS) 40 Julius (JavaScript) 40 Types 41 Type-Safe URLs 42 Syntax 43 Hamlet Syntax 44 Lucius Syntax 49 Cassius Syntax 51 Julius Syntax 51 Calling Shakespeare 51 Alternative Hamlet Types 53 Other Shakespeare 55 General Recommendations 56 Widgets. .57 Synopsis 57 What’s in a Widget? 59 Constructing Widgets 60 Combining Widgets 61 Generating IDs 62 whamlet 62 Types 63 Using Widgets 64 Using Handler Functions 66 Summary 67 TheYesodTypedass. Rendering and Parsing URLs 69 joinPath 71 cleanPath 71 defaultLayout 73 iv I Table of Contents
7. getMessage 74 Custom Error Pages 75 External CSS and JavaScript 76 Smarter Static Files 77 Authentication/Authorization 78 Some Simple Settings 79 Summary 79 Routing and Handlers. . 81 Route Syntax 81 Pieces 82 Resource Name 84 Handler Specification 85 Dispatch 86 Return Type 86 Arguments 87 The Handler Functions 88 Application Information 89 Request Information 89 Short-Circuiting 89 Response Headers 90 I/O and Debugging 91 Query String and Hash Fragments 92 Summary 93 Forms. .95 Synopsis 95 Kinds of Forms 97 Types 98 Converting 100 Creating AForms 100 Optional Fields 101 Validation 102 More Sophisticated Fields 103 Running Forms 104 il8n 105 Monadic Forms 105 Input Forms 108 Custom Fields 109 Values That Don’t Come from the User 111 Summary 113 Table of Contents | v
clientsession 115 Controlling Sessions 116 Session Operations 117 Messages 118 Ultimate Destination 120 Summary 122 . 123 Synopsis 124 Solving the Boundary Issue 125 Types 126 Code Generation 127 PersistStore 130 Migrations 131 Uniqueness 134 Queries 135 Fetching by ID 135 Fetching by Unique Constraint 136 Select Functions 136 Manipulation 138 Insert 138 Update 140 Delete 141 Attributes 141 Relations 144 A Closer Look at Types 145 More Complicated, More Generic 146 Custom Fields 147 Persistent: Raw SQL 148 Integration with Yesod 150 More Complex SQL 152 Something Besides SQLite 152 Summary 153 11. Deploying Your Web App. . 155 Keter 155 Compiling 156 Files to Deploy 156 SSL and Static Files 157 Warp 157 Nginx Configuration 158 vi | Table of Contents
Server Process 160 Nginx + FastCGI 160 Desktop 161 CGI on Apache 162 FastCGI on lighttpd 162 CGI on lighttpd 163 Part II. Advanced 12. RESTful Content. 167 Request Methods 167 Representations 168 JSON Conveniences 170 New Data Types 172 Other Request Headers 176 Summary 176 13. Yesod's Monads. 177 Monad Transformers 177 The Three Transformers 178 Example: Database-Driven Navbar 179 Example: Request Information 181 Performance and Error Messages 183 Adding a New Monad Transformer 184 Summary 188 14. Authentication and Authorization. 189 Overview 189 Authenticate Me 190 Email 194 Authorization 198 Summary 200 15. Scaffolding and the Site Template. 203 How to Scaffold 203 File Structure 204 Cabal File 204 Routes and Entities 205 Foundation and Application Modules 205 Import 206 Handler Modules 207 Table of Contents | vii
widgetFile defaultLayout Static Files Summary 207 208 208 209 16. Internationalization. Synopsis Overview Message Files Specifying Types RenderMessage typeclass Interpolation Phrases, Not Words 211 211 213 214 215 215 216 217 17. Creating a Subsite. 219 Hello, World 219 Understanding a Request. .223 Handlers 223 Layers 224 Content 225 Short-Circuit Responses 226 Dispatch 226 toWaiApp, toWaiAppPlain, and warp 227 Generated Code 228 Complete Code 232 Summary 234 SQL Joins. . 235 Multiauthor Blog 235 Database Queries in Widgets 237 Joins 238 Esqueleto 239 Streaming 240 Summary 242 Yesod for Haskellers. Hello, Warp 245 What About Yesod? 250 The HandlerT Monad Transformer 252 (To)Content, (To)TypedContent 255 HasContentType and Representations 256 viii | Table of Contents
Convenience warp Function 258 Writing Handlers 258 Getting Request Parameters 258 Short-Circuiting 259 Streaming 259 Dynamic Parameters 261 Routing with Template Haskell 262 LiteApp 264 Shakespeare 265 The URL Rendering Function 267 Widgets 267 Details We Won’t Cover 268 Part III. Examples 21. Initializing Data in the Foundation Data Type.271 Step 1: Define Your Foundation 272 Step 2: Use the Foundation 272 Step 3: Create the Foundation Value 272 Summary 273 22. Blog: i18n, Authentication, Authorization, and Database.275 23. Wiki: Markdown, Chat Subsite, Event Source. 285 Subsite: Data 285 Subsite: Handlers 286 Subsite: Widget 289 Master Site: Data 291 Master Site: Instances 292 Master Site: Wiki Handlers 293 Master Site: Running 294 Summary 295 24. JSON Web Service. 297 Server 297 Client 298 25. Case Study: Sphinx-Based Search. 301 Sphinx Setup 301 Basic Yesod Setup 302 Searching 305 Table of Contents | ix
Streaming xmlpipe Output 308 Full Code 310 26. Visitor Counter. 317 27. Single-Process Pub/Sub . 319 Foundation Data Type 319 Allocate a Job 320 Fork Our Background Job 320 View Progress 321 Complete Application 321 28. Environment Variables for Configuration. 325 29. Route Attributes. 327 Alternative Approach: Hierarchical Routes 329 Part IV. Appendices A. monad-control. 335 B. Web Application Interface. 345 C. Settings Types.353 D. http-conduit.355 E. xml-conduit.361 Index. 377 x | Table of Contents |
any_adam_object | 1 |
author | Snoyman, Michael |
author_GND | (DE-588)1024217779 |
author_facet | Snoyman, Michael |
author_role | aut |
author_sort | Snoyman, Michael |
author_variant | m s ms |
building | Verbundindex |
bvnumber | BV042569723 |
classification_rvk | ST 250 |
ctrlnum | (OCoLC)906074566 (DE-599)DNB1064277500 |
dewey-full | 004 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 004 - Computer science |
dewey-raw | 004 |
dewey-search | 004 |
dewey-sort | 14 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
edition | 2. ed. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>00000nam a2200000 c 4500</leader><controlfield tag="001">BV042569723</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">150519s2015 a||| |||| 00||| eng d</controlfield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">1064277500</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781491915592</subfield><subfield code="9">978-1-491-91559-2</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)906074566</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)DNB1064277500</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-11</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">004</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Snoyman, Michael</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)1024217779</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Developing web apps with Haskell and Yesod</subfield><subfield code="b">[safety-driven web development]</subfield><subfield code="c">Michael Snoyman</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">2. ed.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Beijing ; Köln [u.a.]</subfield><subfield code="b">O'Reilly</subfield><subfield code="c">2015</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XIV, 392 S.</subfield><subfield code="b">Ill.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Funktionale Programmiersprache</subfield><subfield code="0">(DE-588)4129948-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">HASKELL</subfield><subfield code="0">(DE-588)4318275-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Funktionale Programmierung</subfield><subfield code="0">(DE-588)4198740-8</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Funktionale Programmierung</subfield><subfield code="0">(DE-588)4198740-8</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">Funktionale Programmiersprache</subfield><subfield code="0">(DE-588)4129948-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="2" ind2="0"><subfield code="a">HASKELL</subfield><subfield code="0">(DE-588)4318275-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="2" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">X:MVB</subfield><subfield code="q">text/html</subfield><subfield code="u">http://deposit.dnb.de/cgi-bin/dokserv?id=5119294&prov=M&dok%5Fvar=1&dok%5Fext=htm</subfield><subfield code="3">Inhaltstext</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">V:DE-576;X:oreilly</subfield><subfield code="q">image/jpeg</subfield><subfield code="u">http://swbplus.bsz-bw.de/bsz428117619cov.htm</subfield><subfield code="3">Cover</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">HBZ Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=028003298&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-028003298</subfield></datafield></record></collection> |
id | DE-604.BV042569723 |
illustrated | Illustrated |
indexdate | 2024-08-03T02:23:31Z |
institution | BVB |
isbn | 9781491915592 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-028003298 |
oclc_num | 906074566 |
open_access_boolean | |
owner | DE-11 |
owner_facet | DE-11 |
physical | XIV, 392 S. Ill. |
publishDate | 2015 |
publishDateSearch | 2015 |
publishDateSort | 2015 |
publisher | O'Reilly |
record_format | marc |
spelling | Snoyman, Michael Verfasser (DE-588)1024217779 aut Developing web apps with Haskell and Yesod [safety-driven web development] Michael Snoyman 2. ed. Beijing ; Köln [u.a.] O'Reilly 2015 XIV, 392 S. Ill. txt rdacontent n rdamedia nc rdacarrier Funktionale Programmiersprache (DE-588)4129948-6 gnd rswk-swf HASKELL (DE-588)4318275-6 gnd rswk-swf Funktionale Programmierung (DE-588)4198740-8 gnd rswk-swf Funktionale Programmierung (DE-588)4198740-8 s DE-604 Funktionale Programmiersprache (DE-588)4129948-6 s HASKELL (DE-588)4318275-6 s X:MVB text/html http://deposit.dnb.de/cgi-bin/dokserv?id=5119294&prov=M&dok%5Fvar=1&dok%5Fext=htm Inhaltstext V:DE-576;X:oreilly image/jpeg http://swbplus.bsz-bw.de/bsz428117619cov.htm Cover HBZ Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=028003298&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Snoyman, Michael Developing web apps with Haskell and Yesod [safety-driven web development] Funktionale Programmiersprache (DE-588)4129948-6 gnd HASKELL (DE-588)4318275-6 gnd Funktionale Programmierung (DE-588)4198740-8 gnd |
subject_GND | (DE-588)4129948-6 (DE-588)4318275-6 (DE-588)4198740-8 |
title | Developing web apps with Haskell and Yesod [safety-driven web development] |
title_auth | Developing web apps with Haskell and Yesod [safety-driven web development] |
title_exact_search | Developing web apps with Haskell and Yesod [safety-driven web development] |
title_full | Developing web apps with Haskell and Yesod [safety-driven web development] Michael Snoyman |
title_fullStr | Developing web apps with Haskell and Yesod [safety-driven web development] Michael Snoyman |
title_full_unstemmed | Developing web apps with Haskell and Yesod [safety-driven web development] Michael Snoyman |
title_short | Developing web apps with Haskell and Yesod |
title_sort | developing web apps with haskell and yesod safety driven web development |
title_sub | [safety-driven web development] |
topic | Funktionale Programmiersprache (DE-588)4129948-6 gnd HASKELL (DE-588)4318275-6 gnd Funktionale Programmierung (DE-588)4198740-8 gnd |
topic_facet | Funktionale Programmiersprache HASKELL Funktionale Programmierung |
url | http://deposit.dnb.de/cgi-bin/dokserv?id=5119294&prov=M&dok%5Fvar=1&dok%5Fext=htm http://swbplus.bsz-bw.de/bsz428117619cov.htm http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=028003298&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT snoymanmichael developingwebappswithhaskellandyesodsafetydrivenwebdevelopment |