Hypermedia: The Missing Element to Building Adaptable Web APIs in RailsToru Kawamura
RubyKaigi 2014
http://rubykaigi.org/2014/presentation/S-ToruKawamura
Japanese enlargement version http://www.slideshare.net/tkawa1/rubykaigi2014-hypermedia-the-missing-element-enlarged-ja
How to bake delicious cookie (RESTful Meetup #03)Toru Yamaguchi
Toru Yamaguchi gave a presentation on advanced cookie usage. He explained the differences between host cookies and domain cookies, and how the path attribute can be used to control where cookies are sent. He discussed how JSON web tokens (JWT) can be used for login sessions by embedding user agent information. Finally, he mentioned how transparent session state cookies allow for single logout between authorization servers and client applications.
This document summarizes Takuto Wada's presentation on reviewing RESTful web apps. It discusses best practices for designing RESTful resources and representations, including using nouns instead of verbs in URLs, making URLs reflect the meaning of resources, and ensuring resources are connected through hypermedia links and forms. It also covers appropriate use of HTTP methods, status codes, and content negotiation to build RESTful APIs in accordance with best practices.
Web Clients for Ruby and What they should be in the futureToru Kawamura
Toru Kawamura discusses the need for web clients in Ruby to be adaptable to change by being decoupled and easy to reuse through versatility. He outlines some of the issues with existing tightly coupled clients and gems dedicated to specific APIs. Kawamura proposes a "Web Client" concept modeled after Rack middleware and Faraday middleware, which can be combined and reused across clients and APIs. He demonstrates implementations of this concept through the faraday-hypermedia and faraday-link-extractor gems. The presentation argues that a decoupled, modular approach to web clients following standards can help address current issues around rigid coupling and lack of reusability.
The document discusses the need for more reusable APIs and outlines 10 things API developers should stop doing, including mapping semantics to protocols instead of messages, hiding update and query rules in documentation, and requiring clients to recode and redeploy at random. It argues that APIs should map semantics to messages, use inline hypermedia controls, provide SDKs when needed, share message models rather than object models, describe services abstractly, put workflow in messages, avoid breaking changes, and distribute storage and execution rather than relying on single points of failure. The document concludes that making these changes to follow best practices for reusable APIs is not complicated, though some aspects may be hard.
Why HTML Form dose not support PUT & DELETE ?Jxck Jxck
The document discusses why HTML forms have traditionally only supported GET and POST methods, not PUT and DELETE. It provides historical context, from the origins of HTTP/1.0 and HTML 4.0 through proposals in XForms and the current discussions in HTML5. While forms were originally designed for GET/POST submission before Ajax existed, recent draft extensions aim to enhance HTTP request generation from forms to support the full HTTP/1.1 method set through new attributes.
1) The document discusses how Rails realizes RESTful resource modeling patterns through the use of "resources" in config/routes.rb.
2) It argues that focusing on RESTful patterns, including resources, encourages good resource design. RubyGems can also help with resource modeling by implementing specific patterns.
3) If creating a Rails gem, the author recommends designing around resources when possible. Sticking to fundamental patterns allows gems to realize RESTful modeling patterns.
Hypermedia: The Missing Element to Building Adaptable Web APIs in RailsToru Kawamura
RubyKaigi 2014
http://rubykaigi.org/2014/presentation/S-ToruKawamura
Japanese enlargement version http://www.slideshare.net/tkawa1/rubykaigi2014-hypermedia-the-missing-element-enlarged-ja
How to bake delicious cookie (RESTful Meetup #03)Toru Yamaguchi
Toru Yamaguchi gave a presentation on advanced cookie usage. He explained the differences between host cookies and domain cookies, and how the path attribute can be used to control where cookies are sent. He discussed how JSON web tokens (JWT) can be used for login sessions by embedding user agent information. Finally, he mentioned how transparent session state cookies allow for single logout between authorization servers and client applications.
This document summarizes Takuto Wada's presentation on reviewing RESTful web apps. It discusses best practices for designing RESTful resources and representations, including using nouns instead of verbs in URLs, making URLs reflect the meaning of resources, and ensuring resources are connected through hypermedia links and forms. It also covers appropriate use of HTTP methods, status codes, and content negotiation to build RESTful APIs in accordance with best practices.
Web Clients for Ruby and What they should be in the futureToru Kawamura
Toru Kawamura discusses the need for web clients in Ruby to be adaptable to change by being decoupled and easy to reuse through versatility. He outlines some of the issues with existing tightly coupled clients and gems dedicated to specific APIs. Kawamura proposes a "Web Client" concept modeled after Rack middleware and Faraday middleware, which can be combined and reused across clients and APIs. He demonstrates implementations of this concept through the faraday-hypermedia and faraday-link-extractor gems. The presentation argues that a decoupled, modular approach to web clients following standards can help address current issues around rigid coupling and lack of reusability.
The document discusses the need for more reusable APIs and outlines 10 things API developers should stop doing, including mapping semantics to protocols instead of messages, hiding update and query rules in documentation, and requiring clients to recode and redeploy at random. It argues that APIs should map semantics to messages, use inline hypermedia controls, provide SDKs when needed, share message models rather than object models, describe services abstractly, put workflow in messages, avoid breaking changes, and distribute storage and execution rather than relying on single points of failure. The document concludes that making these changes to follow best practices for reusable APIs is not complicated, though some aspects may be hard.
Why HTML Form dose not support PUT & DELETE ?Jxck Jxck
The document discusses why HTML forms have traditionally only supported GET and POST methods, not PUT and DELETE. It provides historical context, from the origins of HTTP/1.0 and HTML 4.0 through proposals in XForms and the current discussions in HTML5. While forms were originally designed for GET/POST submission before Ajax existed, recent draft extensions aim to enhance HTTP request generation from forms to support the full HTTP/1.1 method set through new attributes.
1) The document discusses how Rails realizes RESTful resource modeling patterns through the use of "resources" in config/routes.rb.
2) It argues that focusing on RESTful patterns, including resources, encourages good resource design. RubyGems can also help with resource modeling by implementing specific patterns.
3) If creating a Rails gem, the author recommends designing around resources when possible. Sticking to fundamental patterns allows gems to realize RESTful modeling patterns.
Year 4 learned African drumming techniques while Year 3 visited both a recycling center and a local church to learn about different religions. Several classes also participated in fundraising, theater performances, video calls with international partners, science projects on habitats, bike safety training, art projects making Egyptian masks, and filling shoeboxes with gifts for children in need.
This document provides an overview of an AWS Cloud School training on Amazon Web Services (AWS). It includes an agenda that outlines five modules covering topics like AWS storage, compute and networking, managed services and databases, and deployment and management. Each module is designed to describe fundamental AWS services and help attendees learn how to use AWS technologies. The document also provides copyright information and contact details for questions.
Hello Guys!
The http://treadmillus.com/proform-505-cst-treadmill-2014-model-2/ ProForm 505 CST Treadmill is designed to get you moving. Through revolution of the treadmill industry ProForm 505 CST Treadmill now become world-famous for its design. For its advances in cushioning, electronics, and reliability people want to grab it. Not only its striking features but also its design seduces people to try its endless benefits.
Every country has national heroes who brought glory to their nation, such as George Washington and Abraham Lincoln for Americans. Ukraine has many heroes including Ivan Mazepa, Stepan Bandera, and Oleksa Dovbush. Bogdan Khmelnitsky is one of Ukraine's most popular historical figures and a national hero, having struggled for 10 years against the Polish-Lithuanian Commonwealth and participated in the Polish-Turkish War, playing an important role in Ukrainian history.
Todas as fotos pertencem a uma organização. A propriedade intelectual de imagens e conteúdo deve ser respeitada. Direitos autorais protegem a criatividade e inovação.
MySpace es un sitio web de redes sociales creado en agosto de 2003 por Tom Anderson y Chris DeWolfe. En julio de 2005 fue adquirido por News Corporation. Originalmente diseñado para que los usuarios crearan perfiles con información personal, música, videos y blogs, MySpace se ha convertido en una plataforma global y en uno de los sitios web más visitados, especialmente entre los jóvenes estadounidenses. A lo largo de los años, MySpace ha ido actualizando su diseño y funcionalidades para competir con otras redes sociales como Facebook.
This document provides contact information for Scott Krehl and specifies that the drawings and designs contained are the exclusive property of Paramount Community Development Corp. Unauthorized reproduction or modification of the plans without written consent is prohibited by law, though permission is granted to reproduce the plans for bidding and construction purposes on this particular project. The document also provides the project number and name, as well as details that it contains electrical details and penetration details.
This presentation is prepared by N. Sanu for conducting science classes in Kerla by KSSP in connection with IYC celebrations.
You can share, remix or adapt this presentation as per the conditions of Creative Commons Attribution licence to KSSP.
The document is a log of Tom Ousman's ascent of Pikes Peak on September 11, 2010, consisting of multiple repetitive entries of the date and location. It provides no other context or details about the climb.
Year 4 learned African drumming techniques while Year 3 visited both a recycling center and a local church to learn about different religions. Several classes also participated in fundraising, theater performances, video calls with international partners, science projects on habitats, bike safety training, art projects making Egyptian masks, and filling shoeboxes with gifts for children in need.
This document provides an overview of an AWS Cloud School training on Amazon Web Services (AWS). It includes an agenda that outlines five modules covering topics like AWS storage, compute and networking, managed services and databases, and deployment and management. Each module is designed to describe fundamental AWS services and help attendees learn how to use AWS technologies. The document also provides copyright information and contact details for questions.
Hello Guys!
The http://treadmillus.com/proform-505-cst-treadmill-2014-model-2/ ProForm 505 CST Treadmill is designed to get you moving. Through revolution of the treadmill industry ProForm 505 CST Treadmill now become world-famous for its design. For its advances in cushioning, electronics, and reliability people want to grab it. Not only its striking features but also its design seduces people to try its endless benefits.
Every country has national heroes who brought glory to their nation, such as George Washington and Abraham Lincoln for Americans. Ukraine has many heroes including Ivan Mazepa, Stepan Bandera, and Oleksa Dovbush. Bogdan Khmelnitsky is one of Ukraine's most popular historical figures and a national hero, having struggled for 10 years against the Polish-Lithuanian Commonwealth and participated in the Polish-Turkish War, playing an important role in Ukrainian history.
Todas as fotos pertencem a uma organização. A propriedade intelectual de imagens e conteúdo deve ser respeitada. Direitos autorais protegem a criatividade e inovação.
MySpace es un sitio web de redes sociales creado en agosto de 2003 por Tom Anderson y Chris DeWolfe. En julio de 2005 fue adquirido por News Corporation. Originalmente diseñado para que los usuarios crearan perfiles con información personal, música, videos y blogs, MySpace se ha convertido en una plataforma global y en uno de los sitios web más visitados, especialmente entre los jóvenes estadounidenses. A lo largo de los años, MySpace ha ido actualizando su diseño y funcionalidades para competir con otras redes sociales como Facebook.
This document provides contact information for Scott Krehl and specifies that the drawings and designs contained are the exclusive property of Paramount Community Development Corp. Unauthorized reproduction or modification of the plans without written consent is prohibited by law, though permission is granted to reproduce the plans for bidding and construction purposes on this particular project. The document also provides the project number and name, as well as details that it contains electrical details and penetration details.
This presentation is prepared by N. Sanu for conducting science classes in Kerla by KSSP in connection with IYC celebrations.
You can share, remix or adapt this presentation as per the conditions of Creative Commons Attribution licence to KSSP.
The document is a log of Tom Ousman's ascent of Pikes Peak on September 11, 2010, consisting of multiple repetitive entries of the date and location. It provides no other context or details about the climb.
関東LibreOffice勉強会とは/ What's Kanto LibreOffice Study PartyNaruhiko Ogasawara
第1回関東LibreOffice勉強会開催にあたり、その趣旨を説明した資料です。
--
This slide describes "Kanto LibreOffice Study Party," one of Japanese area (near by Tokyo) local event of LibreOffice; it's target, focus and goal.
The document discusses REST (Representational State Transfer) and its history and principles. It provides information on REST APIs and compares REST to other technologies like GraphQL and gRPC. Key aspects of REST covered include using URLs and HTTP methods to manipulate representations of resources in JSON format.
This document discusses Representational State Transfer (REST) and its application to web development using Ruby on Rails. It describes the core concepts of REST including using HTTP methods like GET, POST, PUT and DELETE to perform CRUD operations on resources identified by URLs. It explains how Rails makes it easy to build RESTful web APIs by following conventions like defining routes and controllers that align with REST principles.
The document discusses routes.rb in Rails applications. It notes that some developers find routes.rb confusing and messy. The document then analyzes some potential issues with routes.rb, including that the resources method is not very intuitive and that Rails routing is not fully convention over configuration. It also discusses prior work like Conventional Routes and Astaire that aimed to simplify routing. The document considers keeping the basic seven controller actions but making match routes optional. It concludes that using resources is generally better for making routes.rb simpler and more RESTful.
5. • 毎月第2・第4木曜日の19:30∼22:00にここで開催してい
ます。
• モニターに本を映して、主に @tkawa が簡単な日本語訳
を読んでいきつつ、みんなで気になったことや疑問点な
どを話し合って理解を深めます。
Meetup on the 2nd and the 4th Thursdays every month in this place
Displaying the text and its rough Japanese translation,
we discuss what interests us, what we don't know, etc.
17. – Introductionより
“Twitter API”、“Facebook API”、“Google+ API”、
この3つのAPIは、同様のことを行います。すべてユーザー
アカウントの概念を持っているし、ユーザーがテキストを
自分のアカウントに投稿します。しかし、それぞれのAPI
は完全に異なる設計を持っています。1つのAPIを学んで
も、他のものには役に立ちません。
“We talk about the “Twitter API,” the “Facebook API,” and the “Google+ API.”
These three APIs do similar things. They all have some notion of user accounts
and (among other things) they all let users post a little bit of text to their
accounts. But each API has a completely different design. Learning one API
doesn’t help you learn the next one.”
APIの問題 (2)
“
Duplication of Effort
26. 意味付け
リンクを使って「標準語彙」に結びつける
こうすれば、標準語彙さえわかっていれば「意味」がわかる!
<!-- http://example.com/people/135 -->
<link href="http://alps.io/schema.org/Person" rel="profile">
<div class="Person">
<span class="name">Toru Kawamura</span>
Member of
<a href="/organizations/32" rel="memberOf">Sendagaya.rb</a>
</div>
Person → http://schema.org/Person
name → http://schema.org/name
memberOf → http://schema.org/memberOf
You can connect it with the “standard vocabulary” using a link.
This gives understanding of the application semantics to a computer
with understanding of the vocabulary.