This is a presentation which describe the big picture of the Rest API. In this presentation I simply describe the theories with practical examples. Hope this presentation will cover the overall Rest API domain.
Presented by Nikola Vasilev on SkopjeTechMeetup 7.
Representational state transfer (REST) can be thought of as the language of the Internet. Now with cloud usage on the rise, REST is a logical choice for building APIs that allow end users to connect and interact with cloud services. This talk will deliver more insight into the challenges on building and maintaining good and clean RESTful APIs.
This document provides an introduction and overview of REST APIs. It defines REST as an architectural style based on web standards like HTTP that defines resources that are accessed via common operations like GET, PUT, POST, and DELETE. It outlines best practices for REST API design, including using nouns in URIs, plural resource names, GET for retrieval only, HTTP status codes, and versioning. It also covers concepts like filtering, sorting, paging, and common queries.
This document provides an overview of HTTP and REST APIs. It describes how HTTP allows sending documents over the web using URLs to identify resources and HTTP verbs like GET, PUT, DELETE and POST. It defines common response codes. It explains that REST stands for Representational State Transfer and relies on a stateless, client-server architecture using the HTTP protocol. The key design constraints of REST include having a uniform interface, being resource-based and using representations to manipulate resources with self-descriptive messages. Benefits include statelessness for scalability, cacheability to improve performance, separating clients from servers, and using a layered system with intermediary servers.
The document provides an overview of API testing, including definitions of APIs and API testing, descriptions of common API methods like GET, POST, PUT, and DELETE, examples of API requests and responses, and advantages and challenges of API testing. It discusses basics like the API workflow, REST APIs, HTTP response codes, and types of API tests.
The document provides an introduction to web APIs and REST. It defines APIs as methods to access data and workflows from an application without using the application itself. It describes REST as an architectural style for APIs that uses a client-server model with stateless operations and a uniform interface. The document outlines best practices for REST APIs, including using HTTP verbs like GET, POST, PUT and DELETE to perform CRUD operations on resources identified by URIs. It also discusses authentication, authorization, security concerns and gives examples of popular REST APIs from Facebook, Twitter and other services.
Understanding REST APIs in 5 Simple StepsTessa Mero
This document summarizes the 5 steps to understanding REST APIs: 1) Understanding the purpose of APIs and their importance and growth, 2) Learning that REST defines functions to communicate via HTTP verbs and nouns, 3) Knowing that APIs use requests and responses, 4) Relying on documentation as the reference, and 5) Using debugging and testing tools to prevent issues. It provides examples of requests, responses, API documentation, and tools like Postman for working with REST APIs.
A REST API uses HTTP requests with verbs like GET, POST, PUT, and DELETE to perform CRUD (Create, Read, Update, Delete) operations on resources identified by URLs. It provides a lightweight alternative to SOAP that returns data in JSON format and HTTP response codes. Well-known codes include 200 for OK, 201 for Created, 400 for Bad Request, and 404 for Not Found. REST enables building applications and platforms that can easily integrate new interfaces over time.
What is REST API? REST API Concepts and Examples | EdurekaEdureka!
YouTube Link: https://youtu.be/rtWH70_MMHM
** Node.js Certification Training: https://www.edureka.co/nodejs-certification-training **
This Edureka PPT on 'What is REST API?' will help you understand the concept of RESTful APIs and show you the implementation of REST APIs'. Following topics are covered in this REST API tutorial for beginners:
Need for REST API
What is REST API?
Features of REST API
Principles of REST API
Methods of REST API
How to implement REST API?
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
- REST (Representational State Transfer) uses HTTP requests to transfer representations of resources between clients and servers. The format of the representation is determined by the content-type header and the interaction with the resource is determined by the HTTP verb used.
- The four main HTTP verbs are GET, PUT, DELETE, and POST. GET retrieves a representation of the resource and is safe, while PUT, DELETE, and POST can modify the resource's state in atomic operations.
- Resources are abstract concepts acted upon by HTTP requests, while representations are the actual data transmitted in responses. The representation may or may not accurately reflect the resource's current state.
The document discusses demystifying APIs. It begins with an introduction to APIs, including their evolution and benefits. It then discusses RESTful APIs and their key aspects like uniform interface and use of HTTP methods. The document outlines best practices for API design, development, and challenges. It provides examples of designing APIs using Node.js and Hapi.js and discusses challenges like security, authentication, rate limiting, and scalability. Tools mentioned include Express, Swagger, Postman, and Kong.
Les Hazlewood, Stormpath co-founder and CTO and the Apache Shiro PMC Chair demonstrates how to design a beautiful REST + JSON API. Includes the principles of RESTful design, how REST differs from XML, tips for increasing adoption of your API, and security concerns.
Presentation video: https://www.youtube.com/watch?v=5WXYw4J4QOU
More info: http://www.stormpath.com/blog/designing-rest-json-apis
Further reading: http://www.stormpath.com/blog
Sign up for Stormpath: https://api.stormpath.com/register
Stormpath is a user management and authentication service for developers. By offloading user management and authentication to Stormpath, developers can bring applications to market faster, reduce development costs, and protect their users. Easy and secure, the flexible cloud service can manage millions of users with a scalable pricing model.
This document provides an overview of REST basics and how to implement REST with Spring. It discusses:
1. The differences between SOAP and REST web services standards and how REST uses HTTP methods to perform CRUD operations on nouns instead of defining complex operations.
2. Key aspects of REST including the REST triangle of nouns, verbs, and content types. It also covers common REST frameworks and HTTP methods, headers, and status codes.
3. How Spring supports REST with annotations like @RequestMapping and @ResponseBody to build RESTful web services, and uses the DispatcherServlet to route HTTP requests to controller methods.
4. An example of a basic RESTful web service implemented with
Simple REST-API overview for developers. An newer version is here: https://www.slideshare.net/patricksavalle/super-simple-introduction-to-restapis-2nd-version-127968966
This document provides an overview of a RESTful JSON API. It discusses that the API uses a REST design with JSON as the output format. It also describes other common protocols like SOAP and XML-RPC. The API is intended for use by desktop, mobile, and third-party web applications that can communicate over HTTP. Key aspects covered include input-output design, error handling, documentation, and user authentication using OAuth. The API implementation leverages the Sinatra framework with common logic modules to share data and configuration across applications. SDKs are also discussed to help integrate external apps with the API.
The document discusses Node.js and Express.js concepts for building web servers and applications. It includes examples of creating HTTP servers, routing requests, using middleware, handling errors, templating with views and layouts, and separating code into models and routes.
What is API - Understanding API SimplifiedJubin Aghara
What is API/Getting started with API/Understanding API
The document will give you a basic idea of the following:
- What is API
- Real-world examples
- REST and SOAP
- Protocol layer
- Data format (JSON and XML)
- REST HTTP API example
- Which one to go for
- Tools to get started
The document provides an introduction and overview of APIs, REST, and OpenAPI specification. It discusses key concepts like resources, HTTP verbs, and OpenAPI structure. It also demonstrates OpenAPI syntax using JSON and YAML examples and highlights best practices for documenting APIs with OpenAPI.
This document provides an overview of ASP.NET Web API, a framework for building RESTful web services. It discusses key REST concepts like URIs, HTTP verbs, and HATEOAS. It also compares Web API to other technologies like WCF and SOAP, noting advantages of REST such as simpler CRUD operations and standardized development methodology. The document recommends resources like a book on building REST services from start to finish with ASP.NET MVC 4 and Web API.
This document provides an introduction to REST APIs. It defines an API as a set of tools and protocols for building software. A REST API is an architectural style for web services that uses HTTP requests to GET, POST, PUT, and DELETE data. REST APIs have features like being simpler than SOAP, having documentation, and providing error messages. The core principles of REST are that it is stateless, uses a uniform interface, is layered, cacheable, and has code-on-demand. Common HTTP methods map to CRUD operations on resources. REST APIs offer advantages like scalability, flexibility, and independence.
This document provides an overview of ASP.NET Web API, a framework for building HTTP-based services. It discusses key Web API concepts like REST, routing, actions, validation, OData, content negotiation, and the HttpClient. Web API allows building rich HTTP-based apps that can reach more clients by embracing HTTP standards and using HTTP as an application protocol. It focuses on HTTP rather than transport flexibility like WCF.
This document provides an overview of ASP.NET Core 1.0 and discusses its evolution from previous ASP.NET technologies. It covers the ASP.NET architecture, Model-View-Controller pattern, ASP.NET MVC and Web API project templates, tag helpers, consuming Web APIs, and using JavaScript frameworks with ASP.NET Core.
This document provides an overview of APIs and how they work. It begins with basic API concepts and definitions, then demonstrates how APIs are used by having programs interact with applications to access structured data without direct human interaction. It provides examples of common API uses for maps, login/authentication, payments, messaging and more. It also introduces the concept of webhooks which allow applications to "call" other services when data is available, rather than requiring the other service to periodically check via API calls. Overall it serves as a high-level introduction to APIs and webhooks for beginners.
Microsoft Azure is a cloud computing platform and service created by Microsoft for building, testing, deploying, and managing applications and services through Microsoft-managed data centers. It provides software as a service (SaaS), platform as a service (PaaS) and infrastructure as a service (IaaS) and supports many different programming languages, tools and frameworks, including both Microsoft-specific and third-party software and systems.
The document discusses security in information technology. It covers what security is, why it is needed for IT, physical and virtual security threats to IT environments, and how to avoid these threats. Specific topics covered include data security, cyber security, firewalls, access controls, encryption, and other methods to protect against threats like viruses, hacking, and data theft. The goal is to explain the importance of security for protecting IT systems, data, and infrastructure from both physical and virtual risks.
A REST API uses HTTP requests with verbs like GET, POST, PUT, and DELETE to perform CRUD (Create, Read, Update, Delete) operations on resources identified by URLs. It provides a lightweight alternative to SOAP that returns data in JSON format and HTTP response codes. Well-known codes include 200 for OK, 201 for Created, 400 for Bad Request, and 404 for Not Found. REST enables building applications and platforms that can easily integrate new interfaces over time.
What is REST API? REST API Concepts and Examples | EdurekaEdureka!
YouTube Link: https://youtu.be/rtWH70_MMHM
** Node.js Certification Training: https://www.edureka.co/nodejs-certification-training **
This Edureka PPT on 'What is REST API?' will help you understand the concept of RESTful APIs and show you the implementation of REST APIs'. Following topics are covered in this REST API tutorial for beginners:
Need for REST API
What is REST API?
Features of REST API
Principles of REST API
Methods of REST API
How to implement REST API?
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
- REST (Representational State Transfer) uses HTTP requests to transfer representations of resources between clients and servers. The format of the representation is determined by the content-type header and the interaction with the resource is determined by the HTTP verb used.
- The four main HTTP verbs are GET, PUT, DELETE, and POST. GET retrieves a representation of the resource and is safe, while PUT, DELETE, and POST can modify the resource's state in atomic operations.
- Resources are abstract concepts acted upon by HTTP requests, while representations are the actual data transmitted in responses. The representation may or may not accurately reflect the resource's current state.
The document discusses demystifying APIs. It begins with an introduction to APIs, including their evolution and benefits. It then discusses RESTful APIs and their key aspects like uniform interface and use of HTTP methods. The document outlines best practices for API design, development, and challenges. It provides examples of designing APIs using Node.js and Hapi.js and discusses challenges like security, authentication, rate limiting, and scalability. Tools mentioned include Express, Swagger, Postman, and Kong.
Les Hazlewood, Stormpath co-founder and CTO and the Apache Shiro PMC Chair demonstrates how to design a beautiful REST + JSON API. Includes the principles of RESTful design, how REST differs from XML, tips for increasing adoption of your API, and security concerns.
Presentation video: https://www.youtube.com/watch?v=5WXYw4J4QOU
More info: http://www.stormpath.com/blog/designing-rest-json-apis
Further reading: http://www.stormpath.com/blog
Sign up for Stormpath: https://api.stormpath.com/register
Stormpath is a user management and authentication service for developers. By offloading user management and authentication to Stormpath, developers can bring applications to market faster, reduce development costs, and protect their users. Easy and secure, the flexible cloud service can manage millions of users with a scalable pricing model.
This document provides an overview of REST basics and how to implement REST with Spring. It discusses:
1. The differences between SOAP and REST web services standards and how REST uses HTTP methods to perform CRUD operations on nouns instead of defining complex operations.
2. Key aspects of REST including the REST triangle of nouns, verbs, and content types. It also covers common REST frameworks and HTTP methods, headers, and status codes.
3. How Spring supports REST with annotations like @RequestMapping and @ResponseBody to build RESTful web services, and uses the DispatcherServlet to route HTTP requests to controller methods.
4. An example of a basic RESTful web service implemented with
Simple REST-API overview for developers. An newer version is here: https://www.slideshare.net/patricksavalle/super-simple-introduction-to-restapis-2nd-version-127968966
This document provides an overview of a RESTful JSON API. It discusses that the API uses a REST design with JSON as the output format. It also describes other common protocols like SOAP and XML-RPC. The API is intended for use by desktop, mobile, and third-party web applications that can communicate over HTTP. Key aspects covered include input-output design, error handling, documentation, and user authentication using OAuth. The API implementation leverages the Sinatra framework with common logic modules to share data and configuration across applications. SDKs are also discussed to help integrate external apps with the API.
The document discusses Node.js and Express.js concepts for building web servers and applications. It includes examples of creating HTTP servers, routing requests, using middleware, handling errors, templating with views and layouts, and separating code into models and routes.
What is API - Understanding API SimplifiedJubin Aghara
What is API/Getting started with API/Understanding API
The document will give you a basic idea of the following:
- What is API
- Real-world examples
- REST and SOAP
- Protocol layer
- Data format (JSON and XML)
- REST HTTP API example
- Which one to go for
- Tools to get started
The document provides an introduction and overview of APIs, REST, and OpenAPI specification. It discusses key concepts like resources, HTTP verbs, and OpenAPI structure. It also demonstrates OpenAPI syntax using JSON and YAML examples and highlights best practices for documenting APIs with OpenAPI.
This document provides an overview of ASP.NET Web API, a framework for building RESTful web services. It discusses key REST concepts like URIs, HTTP verbs, and HATEOAS. It also compares Web API to other technologies like WCF and SOAP, noting advantages of REST such as simpler CRUD operations and standardized development methodology. The document recommends resources like a book on building REST services from start to finish with ASP.NET MVC 4 and Web API.
This document provides an introduction to REST APIs. It defines an API as a set of tools and protocols for building software. A REST API is an architectural style for web services that uses HTTP requests to GET, POST, PUT, and DELETE data. REST APIs have features like being simpler than SOAP, having documentation, and providing error messages. The core principles of REST are that it is stateless, uses a uniform interface, is layered, cacheable, and has code-on-demand. Common HTTP methods map to CRUD operations on resources. REST APIs offer advantages like scalability, flexibility, and independence.
This document provides an overview of ASP.NET Web API, a framework for building HTTP-based services. It discusses key Web API concepts like REST, routing, actions, validation, OData, content negotiation, and the HttpClient. Web API allows building rich HTTP-based apps that can reach more clients by embracing HTTP standards and using HTTP as an application protocol. It focuses on HTTP rather than transport flexibility like WCF.
This document provides an overview of ASP.NET Core 1.0 and discusses its evolution from previous ASP.NET technologies. It covers the ASP.NET architecture, Model-View-Controller pattern, ASP.NET MVC and Web API project templates, tag helpers, consuming Web APIs, and using JavaScript frameworks with ASP.NET Core.
This document provides an overview of APIs and how they work. It begins with basic API concepts and definitions, then demonstrates how APIs are used by having programs interact with applications to access structured data without direct human interaction. It provides examples of common API uses for maps, login/authentication, payments, messaging and more. It also introduces the concept of webhooks which allow applications to "call" other services when data is available, rather than requiring the other service to periodically check via API calls. Overall it serves as a high-level introduction to APIs and webhooks for beginners.
Microsoft Azure is a cloud computing platform and service created by Microsoft for building, testing, deploying, and managing applications and services through Microsoft-managed data centers. It provides software as a service (SaaS), platform as a service (PaaS) and infrastructure as a service (IaaS) and supports many different programming languages, tools and frameworks, including both Microsoft-specific and third-party software and systems.
The document discusses security in information technology. It covers what security is, why it is needed for IT, physical and virtual security threats to IT environments, and how to avoid these threats. Specific topics covered include data security, cyber security, firewalls, access controls, encryption, and other methods to protect against threats like viruses, hacking, and data theft. The goal is to explain the importance of security for protecting IT systems, data, and infrastructure from both physical and virtual risks.
This document discusses policies and laws related to the IT industry. It covers topics such as the need for IT policies and regulations to prevent threats, software contracts and liability, standards for working, license agreements, and intellectual property rights. The document is presented as a lecture on current topics in computer technology by Rohana K Amarakoon and provides information on each topic over several pages with definitions and examples.
Zone24x7 is developing a new inventory management robot called AZIRO. The document discusses Zone24x7's new product management process and compares its practical approach for developing AZIRO to the theoretical approach outlined in a textbook. It recommends that Zone24x7 identify risks, have contingency plans, and get customer feedback early in the development process given AZIRO's innovative nature.
The document discusses professional bodies in IT and their roles and benefits. It defines professions and professionals, and outlines challenges in the IT profession. It then describes 6 major professional bodies for different IT roles like software engineers, business analysts, quality assurance engineers, network engineers, project managers, and software architects. For each body, it provides details on founding year, purpose, membership categories and requirements.
The document discusses the nature of IT professions. It defines a profession and professional, and outlines the characteristics of professions. Common IT professions include network engineers, software engineers, QA engineers, and project managers. New professions include software architects, UI/UX engineers, and DevOps engineers. Employability skills for IT professionals include self-directed learning, communication skills, organizational skills, teamwork, professionalism, critical thinking, customer relations, managing long hours and stress in a competitive environment.
1) Kandy International Software Solutions is seeking a new owner as their high costs have led to declining profits in recent years. Their assets include the business location, IT infrastructure, software products, and skilled employees.
2) The business has potential as it has developed 20+ software products serving niche markets and has undertaken custom projects. However, it currently sells products at a high price.
3) A new owner could reduce costs and prices to increase profits by capitalizing on the business' strengths like its skilled workforce and product line, while mitigating weaknesses such as unnecessary spending.
KISS is a leading software development company in Sri Lanka. The document analyzes KISS's strategic plan and proposes enhancements. It finds KISS's vision, mission, and objectives to be too broad and not quantifiable. It suggests making them more specific and focused on cloud computing. A SWOT analysis identifies opportunities in cloud/IoT but weaknesses in marketing. The author proposes a differentiation strategy for KISS to focus on niche markets like embedded systems and cloud solutions, to gain competitive advantages through their engineering expertise.
The document discusses security in information technology. It covers topics such as what security is, why it is needed for IT, common security threats to IT systems, both physical and virtual, and how to mitigate those threats. It also addresses data and cyber security, practical applications of security in IT systems, advantages of security, and challenges and limitations of implementing security. The overall goal is to help readers understand the need for IT security and how to protect physical and digital assets from various threats.
The document summarizes a project to appraise the existing "Nenasa" e-learning system developed by Colombo Software Solutions. It provides an overview of the organizational context and objectives of the project. The key objectives of the "Nenasa" project are to build a common educational platform for Sri Lankan students, teachers and institutions, and to develop a scalable modern system. The project timeline is from January 2015 to December 2015, with an estimated cost of $200,000. A cross-functional project team structure is established, with the Program Manager leading various functional leads.
This document outlines the key topics to be covered in a lecture on project management best practices. It discusses the definition of a project, the history of project management, reasons why projects fail, and why project management is needed. The lecturer will cover concepts like the project lifecycle, advantages and disadvantages of project management approaches, and expected learning outcomes. Specific examples of failed projects are provided to illustrate common causes of project failure related to planning, leadership, requirements analysis, quality, risk management, skills, and stakeholder engagement.
Location Based Services in Telecommunication Networks Rohana K Amarakoon
This is a presentation which describe the big picture of the Location Based Services and its applicability in Telecommunication Networks . In this presentation I simply describe the theories with practical examples. Hope this presentation will cover the overall Location Based Services in Telecommunication Networks domain.
Kandy Beverages faces high production costs due to a lack of proper capacity management and planning. Maintaining a constant daily production of 1 million fruit juice bottles regardless of seasonal demand fluctuations results in overhead costs. In the monsoon off-season, KB pays higher prices for fruits and incurs storage costs for excess inventory. In the summer peak season, some stored juice expires before it can be sold. KB's policy of only permanent employees prevents adjusting capacity by reducing or increasing shifts. Improving capacity planning is needed to better match production to changing demand and reduce costs.
The document discusses compressed workweeks, where employees work longer hours over fewer days in order to fulfill their standard work hours in a week. It describes potential benefits for both employers and employees, such as energy savings, extended office hours, better work-life balance, and three-day weekends. The document also outlines considerations for implementing a compressed workweek schedule, including determining employee eligibility and managing paid time off and holidays.
The document discusses topics related to software quality assurance and testing. It covers definitions of testing, types of testing activities like static and dynamic testing, different levels of testing from unit to system level. It also discusses test criteria, coverage, and agile testing approaches. The overall document provides an overview of key concepts in software quality assurance and testing.
This document discusses various social and professional issues in information technology, including ethics, vulnerability disclosure, spam, email scams, hacking, viruses, and conflicts of interest. It addresses how organizations can evaluate their ethics and culture and examines approaches to vulnerability disclosure like non-disclosure, full disclosure, and responsible disclosure. It also outlines common email scams and discusses hacking activities and the development of viruses and worms.
The document discusses green IT, which aims to minimize the negative environmental impacts of IT and use IT to address environmental issues. It describes green IT concepts like reducing waste, improving energy efficiency through practices like power management, and green IT purchasing. Various practical applications are outlined, such as product longevity, virtualization, and data center optimization. The advantages of green IT include reducing carbon emissions and energy costs, increasing data center cooling efficiency, and reducing server space needs through virtualization.
Mr. Llavan Fernando is the founder and CEO of Zone24x7, a leading software development company. Through his 32 years of experience in research and development, he has demonstrated strong leadership capabilities. Under his leadership, Zone24x7 has grown from 8 employees to over 250, diversifying into areas like robotics, IoT, and mobile apps. His leadership skills include influencing employees through learning and experience, listening to employees, and providing training and resources. He has guided the company through different situations by setting goals, providing feedback, delegating projects, and creating new opportunities. Zone24x7's success is largely attributed to Mr. Fernando's vision and ability to adapt his leadership style based on changing business needs.
A REST API follows the REST architectural style and uses common HTTP methods like GET, POST, PUT, DELETE and HEAD to perform operations on resources. Resources are uniquely identified by URIs and manipulated through their representations. The API exposes resources and related operations through a standardized interface to simplify and decouple client-server interactions.
This document provides an overview of RESTful APIs and related concepts:
- It describes HTTP methods like GET, POST, PUT, DELETE and PATCH that are used to interact with resources over HTTP.
- It explains HTTP status codes for success (2xx), client errors (4xx) and server errors (5xx).
- It discusses REST architectural constraints like client-server, statelessness, caching, uniform interface, content negotiation and hypermedia.
- It covers concepts like resources, URIs, relationships between resources, content negotiation, versioning APIs, and HATEOAS to make APIs self-descriptive.
A Deep Dive into RESTful API Design Part 2VivekKrishna34
RESTful API Design, RESTful URI Design, Design Steps, Example Application, What are resources in REST? Various HTTP Status codes used in REST, POST, GET, PUT, PATCH, DELETE methods and what are they used for?
This document discusses REST (Representational State Transfer) and best practices for designing RESTful APIs. It covers the history and principles of REST, including the Richardson Maturity Model and REST constraints like client-server architecture, uniform interfaces, layered systems, caching, statelessness and code-on-demand. It also provides guidelines for URI design, resource modeling, HTTP methods, response caching, content negotiation, authentication and enabling cross-origin access.
This document provides an introduction and overview of RESTful web services. It discusses REST principles such as resources, addressability, statelessness, uniform interface, and representations. It also covers designing RESTful APIs, including examples from Amazon S3. The document outlines an agenda to discuss introduction, principles, design, implementations, and implementation of RESTful APIs and web services.
The document discusses extending service-oriented architecture (SOA) with REST and Web 2.0 principles. It defines representational state transfer (REST) and describes its characteristics, including being resource-centric, using uniform interfaces, and being stateless. It advocates designing SOAs in a RESTful way by following best practices like using standard HTTP methods and URIs to access resources.
The document discusses various features that are important for a robust REST API beyond basic REST principles. These include data modeling, error handling, paging, querying, and batch processing. It also covers API manageability topics like security, rate limiting, analytics, and monitoring. Finally, it provides an overview of REST principles and compares REST to other API styles.
RESTful design rules promote best practices for building scalable APIs. The rules encourage contract-first design, establish standards, and reduce support costs. Key rules include using a uniform interface with URIs to identify resources, caching to improve performance, and making services stateless. Resources should have self-descriptive representations and link to related resources to allow navigation without hard-coded URIs. Common HTTP methods like GET, POST, PUT and DELETE should map to standard CRUD operations, and status codes indicate request outcomes.
These were prepared to teach the module "Emerging Technologies" for the 3rd year Undergraduates of the Asia Pacific Institue of Information Technology, Colombo-2, Sri Lanka (Remotely)
This document provides an overview of REST (Representational State Transfer) web services. It discusses that REST was proposed by Roy Fielding and uses HTTP for communication. The key aspects of REST covered are that it uses a stateless, client-server architecture and standard HTTP methods (GET, POST, PUT, DELETE) to operate on resources identified by URIs. The document also discusses REST characteristics like being web-based, using HTTP for the protocol, having no formal service definition, and following best practices for resource-based URIs, HTTP methods and status codes.
Covers topics like RestApi, Authentication, Authorization, Cacheability, Advantage of RestApi over SOAP and some basics regarding Open Data Protocol(OData).
The document provides guidelines and best practices for designing RESTful APIs, including:
- Using JSON over XML and making the API stateless and secure.
- Following conventions for HTTP verbs and status codes.
- Keeping data structures consistent and handling data with modern frameworks.
- Providing comprehensive documentation for data types, methods, and samples.
The document provides an overview of REST API basics and compares traditional web applications to RESTful APIs. Some key points:
- Traditional web apps use HTML and HTTP, replacing entire pages on each request, while RESTful APIs focus on resources and use HTTP methods to perform CRUD operations.
- REST (Representational State Transfer) is an architectural style using URIs to identify resources and HTTP methods to operate on them. It advocates a stateless, cacheable, layered system of web services.
- Examples show how HTTP methods like GET, POST, PUT, PATCH, and DELETE map to CRUD operations on resources, with content types specifying response formats. Status codes indicate success or failure.
The document discusses Representational State Transfer (REST) and RESTful web services. It provides an overview of REST principles including treating everything as a resource with a uniform interface, using standard HTTP methods, supporting multiple representations, communicating statelessly through hypermedia, and linking resources together. It then provides examples of how to design a RESTful API for a bookmark management application, mapping operations to resources, URIs, and HTTP methods.
This document provides an introduction and overview of web services and RESTful APIs. It discusses the benefits of separating an application into logical layers and exposing business logic through services. It defines web services, microservices, and REST principles. It explains how RESTful resources are addressed with URIs and represented with formats like JSON. It outlines the HTTP methods GET, POST, PUT, PATCH, and DELETE and how they map to create, retrieve, update, and delete operations. It also covers SOAP and challenges it addresses compared to REST. Finally, it discusses HTTP status codes for indicating success and error responses.
Api Design and More (Friday Training at Itnig)itnig
This document discusses API design and scaling. It emphasizes designing APIs that are easy to understand, consume, extend and scale. It covers API design, implementation, deployment and scaling. It provides tips on documenting APIs, designing URIs and HTTP methods, using appropriate status codes and metadata, implementing security, and approaches for versioning and pagination. It also discusses scaling APIs horizontally by adding more stateless and disposable processes, using application caching, HTTP caching, database replication, and delaying asynchronous tasks to improve response times.
This is my initial release of a slide deck used to support a quick training to students on Facebook and Twitter API. A lot of stuff would need to be fixed (my english first as a non-native writer :-). It also does not (yet?) cover all APIs.
This support is better with associated resources such as the underlying Postman request collections.
Please feel free to give feedback if any.
The GDPR document outlines new data protection laws that will take effect in the European Union on May 25th, 2018. The key points are:
1) The GDPR aims to give citizens control over their personal data and simplify rules for businesses.
2) It establishes clear principles for data handling including lawfulness, transparency, storage limitation, and accountability.
3) Individuals are given new rights regarding their data, such as access, rectification, erasure, and objection to processing.
4) Businesses must comply with the single set of rules to reduce costs and protect EU citizen data.
This document provides an overview of agile methodology. It begins with an introduction to the author and their background. It then discusses what agile is, the history and development of agile practices, the 12 principles of the agile manifesto, advantages and disadvantages of agile, how agile addresses software requirements, and common agile methodologies like Scrum, Kanban, and Extreme Programming that are used to implement agile. The document aims to explain agile in simple terms and provide context around its origins and framework.
This is a software change request form template. Software companies could use this CR template to customise and use to collect the change request information.
Process for requirement identification & development in software developmentRohana K Amarakoon
In this presentation, I explain about the best full process of requirement identification to final software delivery through following steps
1. Requirement identification
2. Elaboration of requirement
3. Requirement prioritisation
4. Agile software development
United Motors Lanka PLC's corporate governance practices are evaluated based on a study of its annual report and relevant codes and regulations. The document examines the company's board structure, practices around transparency, accountability, and independence. It finds that the board could be strengthened by having more independent directors and separating the roles of chairman and CEO. Recommendations include increasing corporate social responsibility initiatives, transparency around audit and remuneration practices, and promoting more fuel efficient vehicles.
Rapid Application Development (RAD) is an incremental software development process used to build systems within 60-90 days. It involves business, data, and process modeling, application generation, and testing. RAD is based on agile methods like Scrum and extreme programming and enables quick reviews, constant integration, and flexibility. However, it requires a modularized approach and skilled developers, and is not suitable for small projects or all applications due to higher costs.
Evaluation Challenges in Using Generative AI for Science & Technical ContentPaul Groth
Evaluation Challenges in Using Generative AI for Science & Technical Content.
Foundation Models show impressive results in a wide-range of tasks on scientific and legal content from information extraction to question answering and even literature synthesis. However, standard evaluation approaches (e.g. comparing to ground truth) often don't seem to work. Qualitatively the results look great but quantitive scores do not align with these observations. In this talk, I discuss the challenges we've face in our lab in evaluation. I then outline potential routes forward.
Co-Constructing Explanations for AI Systems using ProvenancePaul Groth
Explanation is not a one off - it's a process where people and systems work together to gain understanding. This idea of co-constructing explanations or explanation by exploration is powerful way to frame the problem of explanation. In this talk, I discuss our first experiments with this approach for explaining complex AI systems by using provenance. Importantly, I discuss the difficulty of evaluation and discuss some of our first approaches to evaluating these systems at scale. Finally, I touch on the importance of explanation to the comprehensive evaluation of AI systems.
Your startup on AWS - How to architect and maintain a Lean and Mean account J...angelo60207
Prevent infrastructure costs from becoming a significant line item on your startup’s budget! Serial entrepreneur and software architect Angelo Mandato will share his experience with AWS Activate (startup credits from AWS) and knowledge on how to architect a lean and mean AWS account ideal for budget minded and bootstrapped startups. In this session you will learn how to manage a production ready AWS account capable of scaling as your startup grows for less than $100/month before credits. We will discuss AWS Budgets, Cost Explorer, architect priorities, and the importance of having flexible, optimized Infrastructure as Code. We will wrap everything up discussing opportunities where to save with AWS services such as S3, EC2, Load Balancers, Lambda Functions, RDS, and many others.
6th Power Grid Model Meetup
Join the Power Grid Model community for an exciting day of sharing experiences, learning from each other, planning, and collaborating.
This hybrid in-person/online event will include a full day agenda, with the opportunity to socialize afterwards for in-person attendees.
If you have a hackathon proposal, tell us when you register!
About Power Grid Model
The global energy transition is placing new and unprecedented demands on Distribution System Operators (DSOs). Alongside upgrades to grid capacity, processes such as digitization, capacity optimization, and congestion management are becoming vital for delivering reliable services.
Power Grid Model is an open source project from Linux Foundation Energy and provides a calculation engine that is increasingly essential for DSOs. It offers a standards-based foundation enabling real-time power systems analysis, simulations of electrical power grids, and sophisticated what-if analysis. In addition, it enables in-depth studies and analysis of the electrical power grid’s behavior and performance. This comprehensive model incorporates essential factors such as power generation capacity, electrical losses, voltage levels, power flows, and system stability.
Power Grid Model is currently being applied in a wide variety of use cases, including grid planning, expansion, reliability, and congestion studies. It can also help in analyzing the impact of renewable energy integration, assessing the effects of disturbances or faults, and developing strategies for grid control and optimization.
DevOps in the Modern Era - Thoughtfully Critical PodcastChris Wahl
https://youtu.be/735hP_01WV0
My journey through the world of DevOps! From the early days of breaking down silos between developers and operations to the current complexities of cloud-native environments. I'll talk about my personal experiences, the challenges we faced, and how the role of a DevOps engineer has evolved.
AI Creative Generates You Passive Income Like Never BeforeSivaRajan47
For years, building passive income meant traditional routes—stocks, real estate, or
online businesses that required endless hours of setup and maintenance. But now,
Artificial Intelligence (AI) is redefining the landscape. We’re no longer talking about
automation in the background; we’re entering a world where AI creatives actively
design, produce, and monetize content and products, opening the floodgates for
passive income like never before.
Imagine AI tools writing books, designing logos, building apps, editing videos, creating
music, and even selling your digital products 24/7—without you lifting a finger after
setup. This isn't the future. It’s happening right now. And if you act fast, you can ride
the wave before it becomes saturated.
In this in-depth guide, we’ll show you how to tap into AI creativity for real, sustainable,
passive income streams—no fluff, no generic tips—just actionable, traffic-driving
insights.
Developing Schemas with FME and Excel - Peak of Data & AI 2025Safe Software
When working with other team members who may not know the Esri GIS platform or may not be database professionals; discussing schema development or changes can be difficult. I have been using Excel to help illustrate and discuss schema design/changes during meetings and it has proven a useful tool to help illustrate how a schema will be built. With just a few extra columns, that Excel file can be sent to FME to create new feature classes/tables. This presentation will go thru the steps needed to accomplish this task and provide some lessons learned and tips/tricks that I use to speed the process.
Domino IQ – Was Sie erwartet, erste Schritte und Anwendungsfällepanagenda
Webinar Recording: https://www.panagenda.com/webinars/domino-iq-was-sie-erwartet-erste-schritte-und-anwendungsfalle/
HCL Domino iQ Server – Vom Ideenportal zur implementierten Funktion. Entdecken Sie, was es ist, was es nicht ist, und erkunden Sie die Chancen und Herausforderungen, die es bietet.
Wichtige Erkenntnisse
- Was sind Large Language Models (LLMs) und wie stehen sie im Zusammenhang mit Domino iQ
- Wesentliche Voraussetzungen für die Bereitstellung des Domino iQ Servers
- Schritt-für-Schritt-Anleitung zur Einrichtung Ihres Domino iQ Servers
- Teilen und diskutieren Sie Gedanken und Ideen, um das Potenzial von Domino iQ zu maximieren
ELNL2025 - Unlocking the Power of Sensitivity Labels - A Comprehensive Guide....Jasper Oosterveld
Sensitivity labels, powered by Microsoft Purview Information Protection, serve as the foundation for classifying and protecting your sensitive data within Microsoft 365. Their importance extends beyond classification and play a crucial role in enforcing governance policies across your Microsoft 365 environment. Join me, a Data Security Consultant and Microsoft MVP, as I share practical tips and tricks to get the full potential of sensitivity labels. I discuss sensitive information types, automatic labeling, and seamless integration with Data Loss Prevention, Teams Premium, and Microsoft 365 Copilot.
Establish Visibility and Manage Risk in the Supply Chain with Anchore SBOMAnchore
Over 70% of any given software application consumes open source software (most likely not even from the original source) and only 15% of organizations feel confident in their risk management practices.
With the newly announced Anchore SBOM feature, teams can start safely consuming OSS while mitigating security and compliance risks. Learn how to import SBOMs in industry-standard formats (SPDX, CycloneDX, Syft), validate their integrity, and proactively address vulnerabilities within your software ecosystem.
Trends Artificial Intelligence - Mary MeekerClive Dickens
Mary Meeker’s 2024 AI report highlights a seismic shift in productivity, creativity, and business value driven by generative AI. She charts the rapid adoption of tools like ChatGPT and Midjourney, likening today’s moment to the dawn of the internet. The report emphasizes AI’s impact on knowledge work, software development, and personalized services—while also cautioning about data quality, ethical use, and the human-AI partnership. In short, Meeker sees AI as a transformative force accelerating innovation and redefining how we live and work.
Jira Administration Training – Day 1 : IntroductionRavi Teja
This presentation covers the basics of Jira for beginners. Learn how Jira works, its key features, project types, issue types, and user roles. Perfect for anyone new to Jira or preparing for Jira Admin roles.
Top 25 AI Coding Agents for Vibe Coders to Use in 2025.pdfSOFTTECHHUB
I've tested over 50 AI coding tools in the past year, and I'm about to share the 25 that actually work. Not the ones with flashy marketing or VC backing – the ones that will make you code faster, smarter, and with way less frustration.
Mark Zuckerberg teams up with frenemy Palmer Luckey to shape the future of XR...Scott M. Graffius
Mark Zuckerberg teams up with frenemy Palmer Luckey to shape the future of XR/VR/AR wearables 🥽
Drawing on his background in AI, Agile, hardware, software, gaming, and defense, Scott M. Graffius explores the collaboration in “Meta and Anduril’s EagleEye and the Future of XR: How Gaming, AI, and Agile are Transforming Defense.” It’s a powerful case of cross-industry innovation—where gaming meets battlefield tech.
📖 Read the article: https://www.scottgraffius.com/blog/files/meta-and-anduril-eagleeye-and-the-future-of-xr-how-gaming-ai-and-agile-are-transforming-defense.html
#Agile #AI #AR #ArtificialIntelligence #AugmentedReality #Defense #DefenseTech #EagleEye #EmergingTech #ExtendedReality #ExtremeReality #FutureOfTech #GameDev #GameTech #Gaming #GovTech #Hardware #Innovation #Meta #MilitaryInnovation #MixedReality #NationalSecurity #TacticalTech #Tech #TechConvergence #TechInnovation #VirtualReality #XR
Your startup on AWS - How to architect and maintain a Lean and Mean accountangelo60207
Prevent infrastructure costs from becoming a significant line item on your startup’s budget! Serial entrepreneur and software architect Angelo Mandato will share his experience with AWS Activate (startup credits from AWS) and knowledge on how to architect a lean and mean AWS account ideal for budget minded and bootstrapped startups. In this session you will learn how to manage a production ready AWS account capable of scaling as your startup grows for less than $100/month before credits. We will discuss AWS Budgets, Cost Explorer, architect priorities, and the importance of having flexible, optimized Infrastructure as Code. We will wrap everything up discussing opportunities where to save with AWS services such as S3, EC2, Load Balancers, Lambda Functions, RDS, and many others.
Your startup on AWS - How to architect and maintain a Lean and Mean accountangelo60207
Rest API
1. By Rohana K Amarakoon
1
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
2. Invented World Wide Web, HTML, Web Browser
Tim Berners-Lee
New Version Hypertext Transfer Protocol, (HTTP/1.1)
Formalize Uniform Resource Identifiers (URI)
Standards quickly spread across the Web and
paved the way for its continued growth.
Web Scalability
2
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
3. In year 2000 Roy Fielding named and described the Web’s architectural style
“Representational State Transfer” (REST).
REST
REST APIs
Web API (Application Programming Interface)
REST architectural style design of APIs for modern web services. A Web API conforming to
the REST architectural style is a REST API.
Face of web service
Directly listening & responding to client requests
3
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
5. Having a REST API
web service “RESTful”
consists of an assembly of interlinked resources.
Set of resources is known as the REST API’s resource model.
Well-designed REST APIs can attract client developers to use web services.
REST API Design
REST API design are implicit in the HTTP standard.
Design rules are drawn from the de facto standards.
Web Resource Modeling Language (WRML) – Rules in JSON format
(conceptual framework for resource model diagramming technique )
5
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
6. http://api.example.restapi.org/france/paris/louvre/leonardo-da-vinci/mona-lisa
Uniform Resource Identifiers (URI)
URI Formats
Good URI
Bad URI
http://api.example.restapi.org/68dd0-a9d3-11e0-9f1c-0800200c9a66
REST APIs use URIs to address resources.
The rules are in format of a URI. RFC 3986*
URI syntax example :
URI = scheme "://" authority "/" path [ "?" query ] [ "#" fragment ]
6
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
7. (/) separator indicate a hierarchical relationship
Hyphens (-) used to improve the readability URI
http://api.example.restapi.org/blogs/mark-masse/entries/this-is-my-first-post
Improve the readability of names in long path segments
http://api.canvas.restapi.org/shapes/polygons/quadrilaterals/squares
Tailing (/) should not be included in URIs
http://api.canvas.restapi.org/shapes/
http://api.canvas.restapi.org/shapes
7
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
8. Underscores (_) should not be used in URIs
http://api.example_restapi.org/blogs/mark-masse/entries/this-is-my-first-post
http://api.example_restapi.org/blogs/mark-masse/entries/this-is-my-first-post
(_) Partially obscured or completely hidden by this underlining.
Lowercase letters should be preferred in URI paths
RFC 3986 defines URIs are case-sensitive
http://api.example.restapi.org/my-folder/my-doc
HTTP://API.EXAMPLE.RESTAPI.ORG/my-folder/my-doc
http://api.example.restapi.org/My-Folder/my-doc
unnecessary confusion
8
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
9. File extensions should not be included in URIs
http://api.college.restapi.org/students/3248234/transcripts/2005/fall
http://api.college.restapi.org/students/3248234/transcripts/2005/fall.json
Consistent sub domain names for APIs
The top-level domain and then sub domain names.
http://api.soccer.restapi.org
URI Authority Design
Top level domain Sub domain
9
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
10. Consistent sub domain names for client developer Portal
The top-level domain and then sub domain names.
http://developer.soccer.restapi.org
URI Authority Design
Developer portal Sub domain
10
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
11. ( /) separated path segment corresponding to unique resource
http://api.soccer.restapi.org
http://api.soccer.restapi.org/leagues
http://api.soccer.restapi.org/leagues/seattle
http://api.soccer.restapi.org/leagues/seattle/teams
http://api.soccer.restapi.org/leagues/seattle/teams/trebuchet
Base Line
Bottom
Line
11
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
12. Document (Base Archetype)
Resource archetypes helps consistently communicate the structures and
behaviors.
http://api.soccer.restapi.org/leagues/seattle
http://api.soccer.restapi.org/leagues/seattle/teams/trebuchet
http://api.soccer.restapi.org/leagues/seattle/teams/trebuchet/players/mike
identifies a document resource
Collection
http://api.soccer.restapi.org/leagues
http://api.soccer.restapi.org/leagues/seattle/teams
http://api.soccer.restapi.org/leagues/seattle/teams/trebuchet/players
server-managed directory of resources
12
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
13. Store
PUT /users/1234/favorites/Alonso
client-managed resource repository
Controller
Controller names typically appear as the last segment in a URI path
POST /alerts/245743/resend
Executable functions, with parameters and return values; inputs and outputs
13
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
14. A singular noun for document names
http://api.soccer.restapi.org/leagues/seattle/teams/trebuchet/players/clau
dio
WRML diagram of a URI’s associated resource model
A plural noun collection names
http://api.soccer.restapi.org/leagues/seattle/teams/trebuchet/players
14
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
15. A plural noun for store names
http://api.music.restapi.org/artists/mikemassedotcom/playlists
A verb or verb phrase for controller names
http://api.college.restapi.org/students/morgan/register
Variable path segments substituted with identity-based Values
http://api.soccer.restapi.org/leagues/{leagueId}/teams/{teamId}/players/{playerId}
http://api.soccer.restapi.org/leagues/seattle/teams/trebuchet/players/21
CRUD function names should not be used in URIs
Preferred: DELETE /users/1234
What not to do: GET /deleteUser?id=1234
GET /deleteUser/1234
DELETE /deleteUser/1234
POST /users/1234/delete
15
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
16. Define a query
URI = scheme "://" authority "/" path [ "?" query ] [ "#" fragment ]
Query is an unique identification of a resource
http://api.college.restapi.org/students/morgan/send-sms
http://api.college.restapi.org/students/morgan/send-sms?text=hello
Query provide additional interaction capabilities
ad hoc searching
Filtering
16
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
17. Query component used to filter collections or stores
GET /users
GET /users?role=admin
Query component used to paginate collection or store results
Parameters : pageSize (maximum number of contained elements )
pageStartIndex (zero-based index of the first element )
GET /users?pageSize=25&pageStartIndex=50
17
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
18. Request methods
Request-Line = Method SP Request-URI SP HTTP-Version CRLF
Response codes
100 200 300 400
Message headers
REST API USE HTTP 1.1
18
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
19. Request methods
Request-Line = Method SP Request-URI SP HTTP-Version CRLF
GET /greeting HTTP/1.1
GET and POST must not be used to tunnel other request meth
Tunneling : misrepresents a message
undermines the protocol’s transparency
GET used to retrieve a representation of a resource
GET /greeting HTTP/1.1
Request Methods
19
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
20. HEAD used to retrieve response headers
Date: Sat, 20 Aug 2011 16:02:40 GMT
PUT used to insert and update a stored / mutable resource
PUT /accounts/4ef2d5d0-cb7e-11e0-9572-0200c9a66/buckets/objects/4321
POST used to create a new resource in a collection
Execute function oriented controllers
POST /leagues/seattle/teams/trebuchet/players
POST /alerts/245743/resend
20
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
21. DELETE used to remove a resource from its parent
DELETE /accounts/4ef2d5d0-cb7e-11e0-9572-800200c9a66/buckets/objects/4321
OPTIONS used to retrieve metadata describes a resource’s
available interactions
Allow: GET, PUT, DELETE
21
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
22. Term Description
DELETE HTTP request method (RM) - remove its parent.
GET HTTP RM - retrieve a representation of a resource’s state.
HEAD HTTP RM - retrieve the metadata associated with the resource’s
state.
OPTIONS HTTP RM - retrieve metadata that describes a resource’s available
interactions.
POST HTTP RM - create a new resource within a collection or execute a
controller.
PUT HTTP RM - insert a new resource into a store or update a mutable
resource.
22
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
24. Term Description
Request-Line RFC 2616 defines its syntax as :
Method SP Request-URI SP HTTP-Version CRLF
Request method Indicates the desired action to be performed on the request
message’s identified resource.
Response status 3-digit numeric value communicated by a server to indicate result
code of client’s request.
Status-Line RFC 2616 defines its syntax as:
HTTP-Version SP Status-Code SP Reason-Phrase CRLF
Tunneling An abuse of HTTP that masks or misrepresents a message’s intent
and undermines the protocol’s transparency.
24
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
25. Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
Response Status Codes Categories
Category Description
1xx: Informational Communicates transfer protocol-level information.
2xx: Success Indicates that the client’s request was accepted successfully.
3xx: Redirection Indicates that the client must take some additional
action in order to complete their request.
4xx: Client Error.
5xx: Server Error.
25
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
26. Response Status Codes In Detail
Code Name Meaning
200 OK Indicates a nonspecific success
201 Created Sent primarily by collections and stores
202 Accepted Sent by controllers to indicate the start of an
asynchronous action
204 No Content Indicates that the body has been
intentionally left blank
26
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
27. Code Name Meaning
301 Moved New permanent URI has been assigned to the
client’s requested resource
303 See Other Sent by controllers to return results that it considers
optional
304 Not Modified Sent to preserve bandwidth (with conditional GET)
307 Temporary Indicates that a temporary URI has been
Redirect assigned to the client’s requested resource
27
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
28. Code Name Meaning
400 Bad Request Indicates a nonspecific client error
401 Unauthorized Sent when the client either provided invalid
credentials or forgot to send them
402 Forbidden Sent to deny access to a protected resource
404 Not Found Sent when the client tried to interact with a URI
that the REST API could not map to a resource
405 Method Not Sent when the client tried to interact using an
Allowed unsupported HTTP method
28
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
29. Code Name Meaning
406 Not Acceptable Sent when the client tried to request data
in an unsupported media type format
409 Conflict Indicates that the client attempted to
violate resource state
412 Precondition Failed Tells the client that one of its preconditions
was not met
415 Unsupported Media Sent when the client submitted data
Type in an unsupported media type format
500 Internal Server Error Tells the client that the API is having
problems of its own
29
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
30. Various forms of metadata conveyed through the entity headers
HTTP’s request
HTTP’s response messages.
REST API HTTP’s standard headers
Content-Type - type of data (ex - media type)
Content-Length - size of the entity-body in bytes
Last-Modified - should be used in responses only
Etag – version in the response’s entity
30
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
31. Stores support conditional PUT requests
(insert and update)
client#1 PUT client#2
creates 200 Created
overwrite 409 Conflicts
update 412 Precondition Failed
update 200 Ok (match)
update 209 No Content
31
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
32. Cache-Control, Expires, and Date used to encourage caching
Date: Tue, 15 Nov 1994 08:12:31 GMT
Expires: Thu, 01 Dec 1994 16:00:00 GMT
Expiration caching headers
should be used with 200 (“OK”) responses
optionally be used with 3xx and 4xx responses
Custom HTTP headers must not be used to change the behavior of
HTTP methods
32
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
33. Media Type Syntax
type "/" subtype *( ";" parameter )
type
application audio image message
model multipart text video
parameters
follow the type/subtype in the form of attribute=value separated by
(;)
Parameter values case-sensitive and enclosed in (“ ”) characters.
Content-type: text/html; charset=ISO-8859-4
Content-type: text/plain; charset="us-ascii" 33
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
34. Registered Media Types
Governed by Internet Assigned Numbers Authority† (IANA)
text/plain
no specific content structure or markup.
text/html
Content that is formatted using the Hyper Text Markup Language
HTML).
image/jpeg
An image compression method that was standardized by the Joint
Photographic Experts Group (JPEG).‖
application/xml
Content that is structured using the Extensible Markup Language
(XML). 34
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
35. application/atom+xml
Content is XML-based format that structures data into lists known
as feeds.
application/javascript
Source code written in the JavaScript programming language.
application/json
The JavaScript Object Notation (JSON) text-based format often used
to exchange structured data.
Vendor-Specific Media Types
application/vnd.ms-excel
application/vnd.lotus-notes
text/vnd.sun.j2me.app-descriptor
35
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
36. Message Body Format
Commonly used XML and JSON formats
XML < > tag pairs.
JSON { } hierarchically structure.
XML – (EXtensible Markup Language)
XML and other formats may optionally be used for resource
representation
JSON – (JavaScript Object Notation)
supported for resource representation
must be well-formed
36
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
37. XML
XML is a markup language much like HTML
XML was designed to carry data, not to display data
XML tags are not predefined. You must define your own tags
XML is designed to be self-descriptive
XML is a W3C Recommendation
XML was created to structure, store, and transport information.
37
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
38. JSON
{
"firstName" : "Osvaldo",
"lastName" : "Alonso",
"firstNamePronunciation" : "ahs-VAHL-doe",
"number" : 6,
"birthDate" : "1985-11-11"
}
all names enclosed in “ “
supports number values directly
date-time values, typically formatted as strings
JSON is universally accepted as a ‘front-end’ language
38
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
40. consistent form should be used to represent links
WRML media type
application/wrml;
format=“http://api.formats.wrml.org/application/json”;
schema=“http://api.schemas.wrml.org/common/Link” Link , LinkRelation,
Format
JSON
{
"href" : Text ,
"rel" : Text ,
"requestTypes" : Array ,
"responseTypes" : Array ,
"title" : Text
}
40
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
41. consistent form should be used to represent relations
WRML media type
application/wrml;
format=“http://api.formats.wrml.org/application/json”;
schema=“http://api.schemas.wrml.org/common/LinkRelation”
JSON
{
"name" : Text,
"method" : Text ,
"requestTypes" : Array ,
"responseTypes" : Array ,
"description" : Text,
"title" : Text
}
41
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
42. Links should be used to advertise a resource’s available actions in a
state-sensitive manner
{
# Fields...
"links" : {
“self" : {
"href" : "http://api.editor.restapi.org/docs/48679",
"rel" : "http://api.relations.wrml.org/common/self"
},
"cut" : {
"href" : "http://api.editor.restapi.org/docs/48679/edit/cut",
"rel" : "http://api.relations.wrml.org/editor/edit/cut"
},
"copy" : {
"href" : "http://api.editor.restapi.org/docs/48679/edit/copy",
"rel" : "http://api.relations.wrml.org/editor/edit/copy"
}
}
} 42
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
43. A consistent form used to represent media type formats
# Request
GET /application/json HTTP/1.1
Host: api.formats.wrml.org
# Response
HTTP/1.1 200 OK
Content-Type: application/wrml;
format="http://api.formats.wrml.org/application/json";
schema="http://api.schemas.wrml.org/common/Format"
{
"mediaType" : "application/json",
"links" : {
"self" : {
"href" : "http://api.formats.wrml.org/application/json",
"rel" : "http://api.relations.wrml.org/common/self"
},
"home" : {
"href" : "http://www.json.org",
"rel" : "http://api.relations.wrml.org/common/home"
Media Type Representation | 57
},
}
} 43
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
45. REST APIs are designed to suit the needs of their client programs
Why Versioning ????
REST API is a resource model (composed of an assembly of interlinked
resources)
Version form representation
state
format="http://api.formats.wrml.org/application/json";
schema="http://api.schemas.wrml.org/common/Format"
New URIs should be used to introduce new concepts
form and state change (maintain a consistent
mapping)
identifier must consistently address the same thought 45
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
46. Schemas used to manage representational form versions
REST API’s resource representations managed by versioned schema
documents
New schema
Adding fields and links new features (REST API)
Entity tags used to manage representational state versions
HTTP header : HTTP 1.1
46
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
47. Security
OAuth used to protect resources (Open Authorization / “open standard )
Web site #01 Share info Web site #2
Username & Password
OAuth - HTTP-based authorization protocol
OAuth – version 1.0 and 2.0 (Differences)
47
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
54. The query component of a URI should be used to support partial
responses
Save on bandwidth & accelerate the overall interaction, a REST API’s client
can use the query component to trim response data.
# Request
GET /students/morgan?fields=(firstName, birthDate) HTTP/1.1
Host: api.college.restapi.org
# Response
HTTP/1.1 200 OK
Content-Type: application/wrml;
format="http://api.formats.wrml.org/application/json";
schema="http://api.schemas.wrml.org/college/Student";
fields="(birthDate, firstName)"
{
"firstName" : "Morgan",
"birthDate" : "1992-07-31"
}
54
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
55. JavaScript facilitates applications that are instantly available
everywhere.
JS programs provide the interactive parts of web experiences.
JS make: applications dynamic, games playable, and advertisements
noticeable.
Web browsers enforce the same origin policy to prevent leaking of
confidential user data.
following resources have the same origin:
http://restapi.org
http://restapi.org:80 same : (default port)
http://restapi.org/js/my-mashup.js same : (specific file)
55
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
56. following resources has a different origin.
http://restapi.org
https://restapi.org
http://www.restapi.org
http://restapi.org:8080
https://restapi.org:80
http://restapi.com
http://wrml.org
56
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
57. JSONP supported to provide multi-origin read access from JavaScript
57
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
58. CORS provide multi-origin read/write access from JavaScript
58
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
59. REST API development frameworks originally created to help build
web applications
Developers don’t want to code web page templates to format their
REST API’s data
Built-in XML and JSON-based serialization and deserialization of the server’s
objects.
59
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
60. Current REST API development frameworks lack direct support for:
Uniform, cross-format hypermedia structures
Media type schema validation and versioning
Both partial and dynamically composed response bodies
Integration with client identification and entitlement authority
Multi-origin resource sharing with JSONP and CORS
60
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
61. For more information
E-mail :
[email protected]
Blog :
http://uncopyrightables2011.blogspot.com/
Twitter :
@MaxRohana
Copyright to Rohana K Amarakoon @ http://uncopyrightables2011.blogspot.com/
61