This document discusses designing practical RESTful APIs. It begins with an overview of REST principles including being resource-oriented, having a uniform interface, and being stateless. It then asks three questions about practical API design: 1) How to design an endpoint for a user to access their own information, concluding endpoints should not allow guessing others' resources and sessions can be used for specific purposes. 2) How to design agreeing to terms of service, concluding to maximize resource representation and make endpoints semantic. 3) How to design a purchase sequence, concluding to establish confirmation phases and intentionally use sessions to prevent duplicates. The document provides examples and discussions for each question to learn how to design practical yet useful APIs.
Lessons learned on the Azure API Stewardship Journey.pptxapidays
apidays LIVE Singapore 2022: Digitising at scale with APIs
April 20 & 21, 2022
Lessons learned on the Azure API Stewardship Journey
Adrian Hall, Principal Product Manager at Microsoft
------------
Check out our conferences at https://www.apidays.global/
Do you want to sponsor or talk at one of our conferences?
https://apidays.typeform.com/to/ILJeAaV8
Learn more on APIscene, the global media made by the community for the community:
https://www.apiscene.io
Explore the API ecosystem with the API Landscape:
https://apilandscape.apiscene.io/
Deep dive into the API industry with our reports:
https://www.apidays.global/industry-reports/
Subscribe to our global newsletter:
https://apidays.typeform.com/to/i1MPEW
Main focus of the talk is to communicate some key concepts of designing/implementing APIs based on an enterprise grade API Standards and Guidelines. We will try to handcraft few API recipes(i.e. implementation design) with real-life examples mixed with a live coding session. While working on each recipe, we will delve into the rationale behind design decisions and best practices. We believe that these concepts will help a developer build a comprehensive API solution from scratch.
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...apidays
apidays LIVE Paris 2021 - APIs and the Future of Software
December 7, 8 & 9, 2021
Lessons from the API Stewardship Journey in Azure
Ryan Sweet, Principal Architect at Microsoft
Why do they call it Linked Data when they want to say...?Oscar Corcho
The four Linked Data publishing principles established in 2006 seem to be quite clear and well understood by people inside and outside the core Linked Data and Semantic Web community. However, not only when discussing with outsiders about the goodness of Linked Data but also when reviewing papers for the COLD workshop series, I find myself, in many occasions, going back again to the principles in order to see whether some approach for Web data publication and consumption is actually Linked Data or not. In this talk we will review some of the current approaches that we have for publishing data on the Web, and we will reflect on why it is sometimes so difficult to get into an agreement on what we understand by Linked Data. Furthermore, we will take the opportunity to describe yet another approach that we have been working on recently at the Center for Open Middleware, a joint technology center between Banco Santander and Universidad Politécnica de Madrid, in order to facilitate Linked Data consumption.
Lessons learned on the Azure API Stewardship Journey.pptxapidays
apidays LIVE Singapore 2022: Digitising at scale with APIs
April 20 & 21, 2022
Lessons learned on the Azure API Stewardship Journey
Adrian Hall, Principal Product Manager at Microsoft
------------
Check out our conferences at https://www.apidays.global/
Do you want to sponsor or talk at one of our conferences?
https://apidays.typeform.com/to/ILJeAaV8
Learn more on APIscene, the global media made by the community for the community:
https://www.apiscene.io
Explore the API ecosystem with the API Landscape:
https://apilandscape.apiscene.io/
Deep dive into the API industry with our reports:
https://www.apidays.global/industry-reports/
Subscribe to our global newsletter:
https://apidays.typeform.com/to/i1MPEW
Main focus of the talk is to communicate some key concepts of designing/implementing APIs based on an enterprise grade API Standards and Guidelines. We will try to handcraft few API recipes(i.e. implementation design) with real-life examples mixed with a live coding session. While working on each recipe, we will delve into the rationale behind design decisions and best practices. We believe that these concepts will help a developer build a comprehensive API solution from scratch.
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...apidays
apidays LIVE Paris 2021 - APIs and the Future of Software
December 7, 8 & 9, 2021
Lessons from the API Stewardship Journey in Azure
Ryan Sweet, Principal Architect at Microsoft
Why do they call it Linked Data when they want to say...?Oscar Corcho
The four Linked Data publishing principles established in 2006 seem to be quite clear and well understood by people inside and outside the core Linked Data and Semantic Web community. However, not only when discussing with outsiders about the goodness of Linked Data but also when reviewing papers for the COLD workshop series, I find myself, in many occasions, going back again to the principles in order to see whether some approach for Web data publication and consumption is actually Linked Data or not. In this talk we will review some of the current approaches that we have for publishing data on the Web, and we will reflect on why it is sometimes so difficult to get into an agreement on what we understand by Linked Data. Furthermore, we will take the opportunity to describe yet another approach that we have been working on recently at the Center for Open Middleware, a joint technology center between Banco Santander and Universidad Politécnica de Madrid, in order to facilitate Linked Data consumption.
Many enterprise IT folk seem to believe that REST is only suitable for lightweight integration or for relatively simple data manipulation (CRUD). On the contrary, by applying well-understood design patterns, REST can provide capabilities that only traditional enterprise integration tools have been able to provide - high performance, asynchronous messaging, reliability, etc.
APIs sind heutzutage der Kern von modernen Anwendungen. Wenn sie gut designt sind, können mit ihnen ohne großen Mehraufwand neue Geschäftsfelder erschlossen und neue oder geänderte Dienstleistungen angeboten werden.
Zudem werden immer mehr Systeme als Microservices-Architekturen aufgebaut, wodurch der Stellenwert auch von guten internen APIs wächst.
Je mehr Nutzer ein API hat und je weniger der Anbieter eines APIs seine Consumer kennt, um so wichtiger wird es, leicht verständliche und leicht zu verwendende APIs anzubieten, die auch sinnvoll weiterentwickelt werden können. Wie müssen sich Clients verhalten, damit sie die Schnittstelle auch bei Weiterentwicklung reibungslos verwenden können? Ansätze wie API First und Consumer-driven Contracts versuchen, diesen Anforderungen gerecht zu werden. Diese werden in dem Workshop an praktischen Beispielen vorgestellt. Zudem wird gezeigt, wie eine Schnittstelle abwärtskompatibel weiterentwickelt werden kann, ohne sich in der Versionierungshölle zu verlieren.
web services are there to expose computer system to outside and make inter connect between those. this presentation explains what is web service, architecture and also types of web services.
this is mainly focus on RESTful services. this explains RESTful services architecture, guide line and also best practices to follow when design RESTful services.
История появления REST
Описание и период популяризации технологии
Виды запросов и коды ответов
Элементы транзакции
Проблематика использования
Отсутствие общего согласования и стандартизации
Частичная поддержка заголовков запросов
Различное поведение клиентов при одинаковом коде ответа
Сложный процесс поиска ошибок во время разработки
Альтернативы
Использование SOAP, XML-RPC и websocket, особенности мониторинга и тестирования REST-сервисов.
Пути реализации в Symfony2-проектах
Voryx REST Generator bundle
FOSRestBundle
NelmioApiDocBundle
Primary focus of this presentation is on the hypermedia as the engine of application state (HATEOAS) and how HTTP APIs may benefit from it. Provides sneak peek into HAL media type & gives an overview of hypermedia support in Java tools (JAX-RS / HalBuilder and Spring HATEOAS) along with practical suggestions for server-side design of hypermedia API. Also includes quick overview of Richardson Maturity Model based on a set of examples, current API trends.
CRUD APIs can be a very powerful tool. However, simply PUTing and POSTing entities can lead to anemic endpoints that lack business value. Go beyond the traditional CRUD API and provide more expressive and meaningful REST endpoints with an API crafted with a commanding paradigm.
Everyday we create services for our systems. A lot of people create RESTful APIs but much more can be accomplished by following best practices and treating your APIs as a product to be consumed by fellow team members, systems and 3rd party consumers.
We will discuss what makes a great RESTful API and share some of our experiences building some that power real systems.
This was part of JOSA TechTalks project within Jordan Open Source Association, presented by Yazan Quteishat and Tambi Jalouqa.
Business Applications Integration In The CloudAnna Brzezińska
Filip Rogaczewski - Atlassian Connect Team Lead.
Presentation from Gdansk University of Technology about integration business application in the cloud i.e. how to integrate 50 000+ servers together.
DataHero / Eventbrite - API Best PracticesJeff Zabel
If you are considering creating an API or an API Platform, we've provided this guide on what you should consider before creating it. We've done 26 integrations and counting and these are some things we think ever api solution should get right.
Many enterprise IT folk seem to believe that REST is only suitable for lightweight integration or for relatively simple data manipulation (CRUD). On the contrary, by applying well-understood design patterns, REST can provide capabilities that only traditional enterprise integration tools have been able to provide - high performance, asynchronous messaging, reliability, etc.
APIs sind heutzutage der Kern von modernen Anwendungen. Wenn sie gut designt sind, können mit ihnen ohne großen Mehraufwand neue Geschäftsfelder erschlossen und neue oder geänderte Dienstleistungen angeboten werden.
Zudem werden immer mehr Systeme als Microservices-Architekturen aufgebaut, wodurch der Stellenwert auch von guten internen APIs wächst.
Je mehr Nutzer ein API hat und je weniger der Anbieter eines APIs seine Consumer kennt, um so wichtiger wird es, leicht verständliche und leicht zu verwendende APIs anzubieten, die auch sinnvoll weiterentwickelt werden können. Wie müssen sich Clients verhalten, damit sie die Schnittstelle auch bei Weiterentwicklung reibungslos verwenden können? Ansätze wie API First und Consumer-driven Contracts versuchen, diesen Anforderungen gerecht zu werden. Diese werden in dem Workshop an praktischen Beispielen vorgestellt. Zudem wird gezeigt, wie eine Schnittstelle abwärtskompatibel weiterentwickelt werden kann, ohne sich in der Versionierungshölle zu verlieren.
web services are there to expose computer system to outside and make inter connect between those. this presentation explains what is web service, architecture and also types of web services.
this is mainly focus on RESTful services. this explains RESTful services architecture, guide line and also best practices to follow when design RESTful services.
История появления REST
Описание и период популяризации технологии
Виды запросов и коды ответов
Элементы транзакции
Проблематика использования
Отсутствие общего согласования и стандартизации
Частичная поддержка заголовков запросов
Различное поведение клиентов при одинаковом коде ответа
Сложный процесс поиска ошибок во время разработки
Альтернативы
Использование SOAP, XML-RPC и websocket, особенности мониторинга и тестирования REST-сервисов.
Пути реализации в Symfony2-проектах
Voryx REST Generator bundle
FOSRestBundle
NelmioApiDocBundle
Primary focus of this presentation is on the hypermedia as the engine of application state (HATEOAS) and how HTTP APIs may benefit from it. Provides sneak peek into HAL media type & gives an overview of hypermedia support in Java tools (JAX-RS / HalBuilder and Spring HATEOAS) along with practical suggestions for server-side design of hypermedia API. Also includes quick overview of Richardson Maturity Model based on a set of examples, current API trends.
CRUD APIs can be a very powerful tool. However, simply PUTing and POSTing entities can lead to anemic endpoints that lack business value. Go beyond the traditional CRUD API and provide more expressive and meaningful REST endpoints with an API crafted with a commanding paradigm.
Everyday we create services for our systems. A lot of people create RESTful APIs but much more can be accomplished by following best practices and treating your APIs as a product to be consumed by fellow team members, systems and 3rd party consumers.
We will discuss what makes a great RESTful API and share some of our experiences building some that power real systems.
This was part of JOSA TechTalks project within Jordan Open Source Association, presented by Yazan Quteishat and Tambi Jalouqa.
Business Applications Integration In The CloudAnna Brzezińska
Filip Rogaczewski - Atlassian Connect Team Lead.
Presentation from Gdansk University of Technology about integration business application in the cloud i.e. how to integrate 50 000+ servers together.
DataHero / Eventbrite - API Best PracticesJeff Zabel
If you are considering creating an API or an API Platform, we've provided this guide on what you should consider before creating it. We've done 26 integrations and counting and these are some things we think ever api solution should get right.
Launch Your Streaming Platforms in MinutesRoshan Dwivedi
The claim of launching a streaming platform in minutes might be a bit of an exaggeration, but there are services that can significantly streamline the process. Here's a breakdown:
Pros of Speedy Streaming Platform Launch Services:
No coding required: These services often use drag-and-drop interfaces or pre-built templates, eliminating the need for programming knowledge.
Faster setup: Compared to building from scratch, these platforms can get you up and running much quicker.
All-in-one solutions: Many services offer features like content management systems (CMS), video players, and monetization tools, reducing the need for multiple integrations.
Things to Consider:
Limited customization: These platforms may offer less flexibility in design and functionality compared to custom-built solutions.
Scalability: As your audience grows, you might need to upgrade to a more robust platform or encounter limitations with the "quick launch" option.
Features: Carefully evaluate which features are included and if they meet your specific needs (e.g., live streaming, subscription options).
Examples of Services for Launching Streaming Platforms:
Muvi [muvi com]
Uscreen [usencreen tv]
Alternatives to Consider:
Existing Streaming platforms: Platforms like YouTube or Twitch might be suitable for basic streaming needs, though monetization options might be limited.
Custom Development: While more time-consuming, custom development offers the most control and flexibility for your platform.
Overall, launching a streaming platform in minutes might not be entirely realistic, but these services can significantly speed up the process compared to building from scratch. Carefully consider your needs and budget when choosing the best option for you.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
What is Augmented Reality Image Trackingpavan998932
Augmented Reality (AR) Image Tracking is a technology that enables AR applications to recognize and track images in the real world, overlaying digital content onto them. This enhances the user's interaction with their environment by providing additional information and interactive elements directly tied to physical images.
Graspan: A Big Data System for Big Code AnalysisAftab Hussain
We built a disk-based parallel graph system, Graspan, that uses a novel edge-pair centric computation model to compute dynamic transitive closures on very large program graphs.
We implement context-sensitive pointer/alias and dataflow analyses on Graspan. An evaluation of these analyses on large codebases such as Linux shows that their Graspan implementations scale to millions of lines of code and are much simpler than their original implementations.
These analyses were used to augment the existing checkers; these augmented checkers found 132 new NULL pointer bugs and 1308 unnecessary NULL tests in Linux 4.4.0-rc5, PostgreSQL 8.3.9, and Apache httpd 2.2.18.
- Accepted in ASPLOS ‘17, Xi’an, China.
- Featured in the tutorial, Systemized Program Analyses: A Big Data Perspective on Static Analysis Scalability, ASPLOS ‘17.
- Invited for presentation at SoCal PLS ‘16.
- Invited for poster presentation at PLDI SRC ‘16.
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
OpenMetadata Community Meeting - 5th June 2024OpenMetadata
The OpenMetadata Community Meeting was held on June 5th, 2024. In this meeting, we discussed about the data quality capabilities that are integrated with the Incident Manager, providing a complete solution to handle your data observability needs. Watch the end-to-end demo of the data quality features.
* How to run your own data quality framework
* What is the performance impact of running data quality frameworks
* How to run the test cases in your own ETL pipelines
* How the Incident Manager is integrated
* Get notified with alerts when test cases fail
Watch the meeting recording here - https://www.youtube.com/watch?v=UbNOje0kf6E
Utilocate offers a comprehensive solution for locate ticket management by automating and streamlining the entire process. By integrating with Geospatial Information Systems (GIS), it provides accurate mapping and visualization of utility locations, enhancing decision-making and reducing the risk of errors. The system's advanced data analytics tools help identify trends, predict potential issues, and optimize resource allocation, making the locate ticket management process smarter and more efficient. Additionally, automated ticket management ensures consistency and reduces human error, while real-time notifications keep all relevant personnel informed and ready to respond promptly.
The system's ability to streamline workflows and automate ticket routing significantly reduces the time taken to process each ticket, making the process faster and more efficient. Mobile access allows field technicians to update ticket information on the go, ensuring that the latest information is always available and accelerating the locate process. Overall, Utilocate not only enhances the efficiency and accuracy of locate ticket management but also improves safety by minimizing the risk of utility damage through precise and timely locates.
Software Engineering, Software Consulting, Tech Lead, Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Transaction, Spring MVC, OpenShift Cloud Platform, Kafka, REST, SOAP, LLD & HLD.
Takashi Kobayashi and Hironori Washizaki, "SWEBOK Guide and Future of SE Education," First International Symposium on the Future of Software Engineering (FUSE), June 3-6, 2024, Okinawa, Japan
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...kalichargn70th171
A dynamic process unfolds in the intricate realm of software development, dedicated to crafting and sustaining products that effortlessly address user needs. Amidst vital stages like market analysis and requirement assessments, the heart of software development lies in the meticulous creation and upkeep of source code. Code alterations are inherent, challenging code quality, particularly under stringent deadlines.
E-commerce Application Development Company.pdfHornet Dynamics
Your business can reach new heights with our assistance as we design solutions that are specifically appropriate for your goals and vision. Our eCommerce application solutions can digitally coordinate all retail operations processes to meet the demands of the marketplace while maintaining business continuity.
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteGoogle
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-pilot-review/
AI Pilot Review: Key Features
✅Deploy AI expert bots in Any Niche With Just A Click
✅With one keyword, generate complete funnels, websites, landing pages, and more.
✅More than 85 AI features are included in the AI pilot.
✅No setup or configuration; use your voice (like Siri) to do whatever you want.
✅You Can Use AI Pilot To Create your version of AI Pilot And Charge People For It…
✅ZERO Manual Work With AI Pilot. Never write, Design, Or Code Again.
✅ZERO Limits On Features Or Usages
✅Use Our AI-powered Traffic To Get Hundreds Of Customers
✅No Complicated Setup: Get Up And Running In 2 Minutes
✅99.99% Up-Time Guaranteed
✅30 Days Money-Back Guarantee
✅ZERO Upfront Cost
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeAftab Hussain
Understanding variable roles in code has been found to be helpful by students
in learning programming -- could variable roles help deep neural models in
performing coding tasks? We do an exploratory study.
- These are slides of the talk given at InteNSE'23: The 1st International Workshop on Interpretability and Robustness in Neural Software Engineering, co-located with the 45th International Conference on Software Engineering, ICSE 2023, Melbourne Australia
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Łukasz Chruściel
No one wants their application to drag like a car stuck in the slow lane! Yet it’s all too common to encounter bumpy, pothole-filled solutions that slow the speed of any application. Symfony apps are not an exception.
In this talk, I will take you for a spin around the performance racetrack. We’ll explore common pitfalls - those hidden potholes on your application that can cause unexpected slowdowns. Learn how to spot these performance bumps early, and more importantly, how to navigate around them to keep your application running at top speed.
We will focus in particular on tuning your engine at the application level, making the right adjustments to ensure that your system responds like a well-oiled, high-performance race car.
8. Resource-Oriented
• Addressable, Indexable
• Resources are identified as Uniform
Resource Identifiers (URIs)
• Connectedness
• Resources should link together in
their representation
13. HTTP METHODS
Uniform Resource
Locator (URL)
GET PUT PATCH POST DELETE
Collection
https://api.xxx/items
List details of
the collection
Replace the
entire collection
with another one
Not
generally
used
Create a
new entry
in the
collection
Delete a
entire
collection
Element
https://api.xxx/items/12
Retrieve a
representation
of the member
of the
collection
Replace the
member of the
collection, or
Create it if it
does not exist
Update
the
member of
the
collection
Not
generally
used
Delete
the
member of
the
collection
23. What can I get you?
For here.
Can I have two cheeseburgers and one
order of fries?
STATELESS
24. What size fries would
you like?
For here.
Can I have two cheeseburgers and one
order of fries?
Small.
STATELESS
25. Would you like
anything to drink?
For here.
Can I have two cheeseburgers and one
order of fries?
Small.
I’ll have coke.
STATELESS
26. STATELESS
• Cashier DOES NOT remember your past orders
• You have to put orders including past orders
27. STATELESS
• Cashier DOES NOT remember your past orders
• You have to put orders including past orders
What good will come of it? 🤔
28. STATELESS
• It was said that the main advantage of STATELESS was
SCALABILITY in the past
• It was believed that STATEFUL COULD NOT scale out
29. STATELESS
• It was said that the main advantage of STATELESS was
SCALABILITY in the past
• It was believed that STATEFUL COULD NOT scale out
• Nowadays …
• LB can dispatch the same server which is scaled out
• scaled out servers can share the same session store
(RDS, Redis, …)
It’s no longer a big deal!
30. Agenda
• What is REST?
• How should we design practical
APIs?
• Conclusion
38. Practical
• Dictionary says
• involving activity rather than study or theory
• likely to be successful or useful
• MAY NOT OBEY all constraints of the REST architecture style
• BREAK theory now and then for a specific purpose
• FOCUS ON successful / useful
41. GET /customers/:id
From GET method, easy to expect retrieving the customer
information from customers table while requesting
Anyone CAN GUESS other’s endpoints
42. GET /me or /mypage
From GET method, easy to expect retrieving my
information from customers table while requesting
Anyone CAN NOT GUESS other’s endpoints
43. However, we need to store customer_id in a session to
identify the customer and it makes this endpoint
STATEFUL … is it okay?
🤔
GET /me or /mypage
44. STATELESS
• It was said that the main advantage of STATELESS was
SCALABILITY in the past
• It was believed that STATEFUL COULD NOT scale out
• Nowadays …
• LB can dispatch the same server which is scaled out
• scaled out servers can share the same session store
(RDS, Redis, …)
It’s no longer a big deal!
45. REMAINS scalable even if we store customer_id in a
session
Caution: we should not manage long-life objects in a
session because it may deprive the independency of
each request
GET /me or /mypage
46. Learned from Q.1
• SHOULD NOT allow anyone to guess the
other’s endpoints if the resources of the
endpoint are serious information
• CAN use a session for a specific purpose
47. Q.2
How should we design
the RESOURCE and the ENDPOINT
that allow customers to agree with
the Terms of Service?
48. Q.2
How should we design
the RESOURCE and the ENDPOINT
that allow customers to agree with
the Terms of Service?
49. This resource CAN NOT represent updating Terms of Service
This resource CAN NOT manage enforced datetime
id int
nickname string
:
agreement booleancustomers
ADD agreement column to customers table
50. This resource CAN represent updating Terms of Service
This resource CAN manage enforced datetime
● enforced date is managed by version column
● enforced datetime is managed by start_at column
CREATE terms / terms_agreement tables
customers
term_agreements
terms
id int
version string
start_at datetime
:
id int
customer_id int
term_id int
:
51. Q.2
How should we design
the RESOURCE and the ENDPOINT
that allow customers to agree with
the Terms of Service?
52. :version is enforced date (ex. /terms/20180515/agreements)
clear to agree with which version of terms
From POST method, easy to expect inserting a new term
agreement record while requesting
POST /terms/:version/agreements
53. Learned from Q.2
• SHOULD maximize representation of a
resource
• SHOULD make an Endpoint semantic
54. Q.3
How should we design
the SEQUENCE in which customers
buy something in an application?
56. Customer
STORE purchase data
CONFIRM
Network Back-end Server Session Store
COMPLETE confirmation
PURCHASE
VALIDATE purchase data
DELETE purchase data
PROCESS purchase
COMPLETE purchase
-
(2) CONFIRM
-
(3) PURCHASE
57. Customer
STORE purchase data
CONFIRM
Network Back-end Server Session Store
PURCHASE
VALIDATE purchase data
DELETE purchase data
PROCESS purchase
-
PREVENT
duplicated requests
COMPLETE confirmation
COMPLETE purchase
58. Learned from Q.3
• SHOULD establish a confirmation phase
to operate significant action, such as a
purchase
• MUST use a session intentionally to
prevent duplicated requests
59. Agenda
• What is REST?
• How should we design practical
APIs?
• Conclusion
60. Learned from Q.1
• SHOULD NOT allow anyone to guess the
other’s endpoints if the resources of the
endpoint are serious information
• CAN use a session for a specific purpose
61. Learned from Q.2
• SHOULD maximize representation of a
resource
• SHOULD make an Endpoint semantic
62. Learned from Q.3
• SHOULD establish a confirmation phase
to operate significant action, such as a
purchase
• MUST use a session intentionally to
prevent duplicated requests