This document provides an overview of REST and best practices for REST API design. It discusses the core principles of REST, Richardson Maturity Model for REST API design, and examples demonstrating the different levels. It also covers Java support for REST APIs using JAX-RS and Spring frameworks. The document recommends practices like using plural nouns for resources and HTTP status codes for errors. It provides contact information for the author, Gábor Török, an experienced Solutions Architect.
Приложения для Windows Phone: как мы это делаем #codefestActis Wunderman
Презентация руководителя отдела мобильных приложений Григория Никонова для конференции CodeFest 2013. Рассказ о нашем опыте в разработке мобильных приложений и, в частности, о том, как сэкономить время и усилия за счёт фреймворков.
Приложения для Windows Phone: как мы это делаем #codefestActis Wunderman
Презентация руководителя отдела мобильных приложений Григория Никонова для конференции CodeFest 2013. Рассказ о нашем опыте в разработке мобильных приложений и, в частности, о том, как сэкономить время и усилия за счёт фреймворков.
5 Ways to Spring Clean Your Credit ReportChena Tucker
Five ways to help you spring clean your credit report by scanning and assessing the things that are hurting your credit score and then create an action plan to turn it around.
About REST. Архитектурные семинары SoftengiSoftengi
About REST (Representational State Transfer) — доклад Антона Богдана, архитектора ПО в команде портфеля проектов Enviance компании Softengi.
Видео доклада от автора можно посмотреть по адресу: http://youtu.be/XPHb2wqO40s
Презентация ответит на вопросы:
- что такое REST?
- характеристики, специфика и структура REST.
Архитектурные семинары Softengi - еженедельные встречи, на которые приглашаются ведущие разработчики/архитекторы Softengi и других компаний нашего консорциума Intecracy Group.
Все проведенные семинары мы записывали, и теперь хотим поделиться опытом и знаниями с такими же профессионалами.
Подписывайся на канал Softengi https://www.youtube.com/user/softengi/ и узнай первым о новых семинарах.
http://www.softengi.com
5 Ways to Spring Clean Your Credit ReportChena Tucker
Five ways to help you spring clean your credit report by scanning and assessing the things that are hurting your credit score and then create an action plan to turn it around.
About REST. Архитектурные семинары SoftengiSoftengi
About REST (Representational State Transfer) — доклад Антона Богдана, архитектора ПО в команде портфеля проектов Enviance компании Softengi.
Видео доклада от автора можно посмотреть по адресу: http://youtu.be/XPHb2wqO40s
Презентация ответит на вопросы:
- что такое REST?
- характеристики, специфика и структура REST.
Архитектурные семинары Softengi - еженедельные встречи, на которые приглашаются ведущие разработчики/архитекторы Softengi и других компаний нашего консорциума Intecracy Group.
Все проведенные семинары мы записывали, и теперь хотим поделиться опытом и знаниями с такими же профессионалами.
Подписывайся на канал Softengi https://www.youtube.com/user/softengi/ и узнай первым о новых семинарах.
http://www.softengi.com
JS Applications need to exchange data with Backend APIs running on domains other than your own – understanding the same origin policy CSP, CORS and postMessage.
Talk held on Grill.js conference in Wroclaw, Poland on 2018-08-18.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
21. W3: „Cool URIs don’t change”
vs
Roy Fielding: „A REST API must not define fixed
resource names or hierarchies”
HATEOAS & self-descriptive messages
Problems: people’s awareness, tools
24. Solves interop problems WSDL contract
Strong typing
Client- and server
bindings
Operations (i.e. verbs)
WS-* support (Security, GETing/POSTing an XML
AtomicTransaction, etc.)
Many proxies block PUT Non-intuitive
Level 0
25.
26. Resources vs actions
getTickets vs /tickets
getMusemTickets vs /tickets?type=museum
27. Plural + ID
CRUD-style operations
Concrete not abstract names
Resource GET POST PUT DELETE
/tickets List tickets Create a Bulk update Delete all
new ticket tickets
/tickets/123 Get the Error Update a Delete a
details of given ticket given ticket
one ticket
28. http://api.company.com/cafe/v1
Major rev only
Numbers, not nicknames, dates, etc.
29. HTTP status codes
200
403
500
503 204 200 400
201 400
500
404 405
401
Short description
Pointer to more information
43. Roy Fielding’s dissertation
REST in Practice from O’Reilly
Apigee blog & video tutorials
Articles, forums
44. Levels of REST – REST ≠ CRUD
Consistent view of best practices
Java support
45. Has been in the industry since late ’90s
Has been @EPAM since 2009, acted as a Dev
Lead/PM, now Solutions Architect
Has mobile + enterprise background
gabor.i.torok@gmail.com
Editor's Notes
Roy Fielding & hisdissertationOne of theprincipalauthorsof HTTP specCo-founder of Apache HTTP server projectWasheavilyinvolvedin HTML and URIsDissertationNo mention of CRUD or POSTLater Fielding saysinhisblogthateven HTTP itself is not a mandatory part of REST (but URI is)HATEOAS is more importantthan CRUD (hypertextdrivesappstatechanges; contentnegotiation)Layeredsystem: gateways, loadbalancers, firewalls, sharedcaches, etc.
Per Roy F: fromlevel 0-2 it’s not REST, 3 IS REST … thetermREST has beenmostlycoupledwithCRUD-likeaccesstodomainobjects0 – URI tunneling:oneURI, one HTTP method POST to a single URI, allattributesasparameter lookslike SOAP w/o envelope part of the Web, limited use of availablefeaturesFirewallfriendly (HTTP)Lackssophistication1 – resources … manyURIs, one HTTP method lots of thought-to-be-RESTfulservices stilltoocomplex2 – verbs … manyURIs, many HTTP methods verynice, butstill limited to CRUD scenariosonly3 – hypermedia resourcesdescribetheirowncapabilities and interconnections it’s like a HTML pagefromwhereyoucan go vialinks inadditiontolinks, it’s alsoaboutcontentnegotiation – own (MIME) types, dynamicdiscoveryLevel 1 tackles the question of handling complexity by using divide and conquer, breaking a large service endpoint down into multiple resources.Level 2 introduces a standard set of verbs so that we handle similar situations in the same way, removing unnecessary variation.Level 3 introduces discoverability, providing a way of making a protocol more self-documenting.
Itcan be anythingelsethan XML, really (JSON, YAML, etc)RPC-stylesolutionBasicallylike SOAP
PronounciationHate o’sHateyo’ assHate eeohsExamples:Get the second 50 items from 500, we may get a link back to the first 50 as well as the thirdWe get the resource data along with possible actions we may take upon it these actions may depend on my authority (authorization)http://www.soatothecloud.com/2012/04/api-gateway-support-for-hateoas-first.html great JSON example + mention of Gateway APIhttp://timelessrepo.com/haters-gonna-hateoas good XML example link tonew comment, commentstoblogentry + toselfproblems that it solves- w3c: coolurisdon’t change http://www.w3.org/Provider/Style/URI.htmlREST calls return with content in a requested format these formats have their media types with hints (links) as to what clients can do with the resource application state may change while „jumping” from one resource to another self-descriptive messagesREST APIs require the user to know that fixed URL structure (i.e. conventions) client rewrite is needed when API changesWith SOAP clients figure out what they can do with a given resource from the WSDL client-side (SOAP) vs server-side (HATEOAS) fixed vs dynamicproblems that it causesMany applications simply map their backend (DB) object to HTTP (api) resources != domain objects resources == domain objects + metadataNew resource definitions might (and should) have their own MIME typesProblemsPeopledon’t understandit’s a problemNo tooling for thisLinkscould be part of theresponseheader http://blog.steveklabnik.com/posts/2011-08-07-some-people-understand-rest-and-http
Each slot now has a link element which contains a URI to tell us how to book an appointment.
SOAPProtocolvsarchitecturalstyle SOAP has a standard whereas REST doesn’tOperationsvsresources verbsvsnounsRigid (typecheckingin SOAP – sometimesit’s a goodthing), light-weight (REST needs no wrapper, like XML in SOAP)Non-intuitivenessvssimplicity in REST URL describes almost everything and quiteintuitivetouse & modifySecurity: WS-Securityvs HTTPS/TLS message-levelvstunnel-levelsecurity http://blogs.msdn.com/b/vbertocci/archive/2005/04/25/end-to-end-security-or-why-you-shouldn-t-drive-your-motorcycle-naked.aspxWS-AtomicTransaction ACID transactions over a serviceManyproxiesblock PUT (badto REST)
Safety & Idempotencysafe: no side-effectsIdempotent: can be repeatedinsuccessionwithoutfailureGET is safe and idempotentPUT and DELETE arenotsafe, butidempotentPOST is neithersafenoridempotentAssociationbetweenresources: /owners/123/dogs don’t go deeperthan /resource/identifier/resourceUse ‚?’ for attributes /dogs?color=blackBe consistent, no mixed plurals&singularsConcretethingslikecoffee, beer NOT drink
api.company.comPut version # asmuchinthe front aspossibleMajor version # onlyDatesas version #s long, hardtoremember, whichdateformat?Optionalversioning and alwaystakethelatestifomitted
200 – OK201 – created204 – No content (after DELETE)400 – Badrequest401 – unauthorized403 – Forbidden404 – notfound405 – methodnotallowed500 – internalerror503 – Service unavailablewithRetry-AfterheaderUltimatelythefollowingthreeshould be enough: 200, 400 (pointingourwherevalidationfailed) and 500
Session managementCaching – reducenetworktraffic, loadon servers, latency, hidenetworkfailuresLocal cache + server cacheActions in the absence of resources use verbs, like /currencyconverter/convert?from=EUR&to=BYR&amount=1000
Thingsremovedfrom here tokeeptime:PATCH - http://weblog.rubyonrails.org/2012/2/26/edge-rails-patch-is-the-new-primary-http-method-for-updates noteveryoneknowswhat HTTP methodsare forParameters/attributes in URL or as part of HTTP header much easier to develop if in URLSuppress HTTP response codes usefulwhenourcode is runningin a containerthatintercepts HTTP commslike status codes
Wadl – web applicationdescriptionlanguage (W3.org), wadl2java tool
Spring Data REST (SDR) representsthebottom-upapproach, whereSDRcomesfromthedomainobjectlayer … it’s notreallyRESTful, imo
Has beenintheindustrysince 1998Developer, tester, architect, project managerMobile, enterpriseForum nokiachampion(?), blogger