My Hypermedia and ASP.NET Web API talk from Oredev
RestBugs sample (for of Howard Dierking's repo) using templates: https://github.com/glennblock/RestBugs
Collection+Json: https://github.com/glennblock/collectionjson
An API is an interface that allows software programs to communicate with each other. APIs define a set of functions that allow components within a software system to communicate in a standardized way. Traditionally, APIs focused on solving data integration problems by enabling the exchange and sharing of data between different software programs and platforms. Modern organizations now leverage APIs to gain insights from user data on other platforms, quickly develop common tasks, and automate existing processes. Popular examples of APIs include Google Maps, Facebook, and YouTube.
This document discusses APIs (Application Programming Interfaces) and how they allow software applications and online services to communicate. APIs are sets of routines, protocols, and tools that allow programs to interact with each other. They transmit data between devices in agreed-upon formats. APIs were initially created to make programming easier by providing reusable building blocks, and now allow things like embedding files from services like ºÝºÝߣShare onto blogs through web APIs. APIs are important because they enable connections and sharing of information between programs and online services.
Ole Lensmar, co-creator of soapUI and Chief Architect at SmartBear Software, gave this presentation at STARWEST 2012. We are working, he says, in the "Golden Age of APIs."
OSGi is an open specification that defines a modular system and service platform for Java applications. It promotes building applications from loosely coupled and independently versioned bundles that can be dynamically installed, started, stopped, updated, or uninstalled without requiring a reboot. The OSGi specification is maturing for use on the server side, with features being added to support enterprise applications. While tooling is still developing, OSGi allows for robust, high availability applications through clear componentization and hot deployment of bundles.
Node.js is gaining significant interest for building scalable web applications. Several large companies like LinkedIn, eBay, and Walmart are using Node.js in production for its performance and scalability benefits when handling input/output bound workloads. Node.js allows non-blocking event-driven programming which helps simplify building applications that interact with services, databases, and handle many concurrent connections using little memory. Its large ecosystem of open-source modules also helps speed up development.
The document discusses the constraints of REST (REpresentational State Transfer) architectural style. It defines REST as a set of constraints for distributed hypermedia systems. The key constraints are that systems be stateless, cacheable, have a uniform interface, and include hypertext driving application state. The hypermedia constraint requires that hyperlinks define valid state transitions and drive the API, making it RESTful. The document provides examples of how to implement the hypermedia constraint using formats like HTML, Atom, and custom MIME types.
A RESTful API is only truly RESTful if it uses hypermedia to tell us about all the actions that can be performed on the curent resource, allowing us to traverse the API from a single entry point.
His session looks at REST and HATEOAS (Hypermedia As The Engine Of Application State) to illustrate good service structure. Ben will use the RESTful file sharing service fdrop.it to illustrate the various examples of how this can be used.
This session is recommended for architects and senior developers alike and will give a good grounding in writing excellent, self-explanatory RESTful services.
This document provides an overview of service design and REST architectures. It discusses key concepts like microservices, APIs, service boundaries, and Conway's Law. It explains that services should be organized around business capabilities and have well-defined interfaces. REST architectural styles are also covered, including the Richardson Maturity Model levels and best practices like resources, uniform interfaces, and HATEOAS. Overall, the document is a useful introduction to designing and modeling service-oriented systems using REST principles.
API Athens Meetup - API standards 22.03.2016Ivan Goncharov
?
APIs.guru is a platform that aims to serve as a Wikipedia for web APIs by providing documentation for APIs in one centralized location. It filters out private and unreliable APIs, standardizes documentation into the Swagger 2.0 format, and allows contributors to add and improve API descriptions. APIs.guru also seeks to address challenges of data and schema incompatibility between APIs by developing a system of common scalar and complex data types that can be referenced and converted between APIs.
This presentation aimed to explain what is REST and why it is commonly misunderstood. It focuses on describing REST from scientific point of view, based on Roy`s Fielding dissertation.
This document discusses the evolution of web APIs from SOAP to RESTful architectures. It covers the basics of REST including the Richardson maturity model, use of HTTP verbs and status codes, hypermedia, and content negotiation. Caching techniques are also discussed as a means of improving scalability. The overall summary is that HTTP provides a powerful application protocol for building web APIs and REST architectures allow these APIs to better leverage the inherent scaling capabilities of the web.
The document discusses APIs, defining them as interfaces that allow applications to communicate and share data over a network. It notes that APIs act as an interface between clients and servers, exposing backend data through operations, inputs, outputs, and data types. The document also outlines the benefits of APIs in standardizing communication and enabling reusability. It introduces common API terminology and types, focusing on web APIs which are the most widely used.
Modern APIs: The Non-Technical User¡¯s Guide | The Enterprise WorldEnterprise world
?
A Modern APIs (Application Programming Interface) is a software interface that allows two applications to communicate with each other. APIs have been around for quite a while.
Making Sense of Hypermedia APIs ¨C Hype or Reality?Akana
?
The document discusses hypermedia APIs and standards. It provides examples of different hypermedia formats including OData, Collection+JSON, HAL, Siren, JSON-API, JSON-LD, Mason, and UBER. It addresses arguments for and against hypermedia APIs. It also discusses how organizations can adopt hypermedia concepts and standards over time without a complete overhaul of their existing APIs.
Building Self Documenting HTTP APIs with CQRSDerek Comartin
?
Does your HTTP API expose your database structure?
HTTP endpoints that represent your database entities couples your consuming clients to the internals of your application. Making it much harder to change your API.
Go beyond serializing a database row into json by leveraging CQRS.
Start designing an HTTP API like a regular HTML website. Bringing the concepts of HTML links and forms to your API allows your clients to consume it with ease.
Attendees will learn how to design an HTTP API by leveraging CQRS and hypermedia to decouple their core application from their HTTP API.
This document discusses APIs (application programming interfaces) and their role in web development. It defines APIs as specifications that allow software components to communicate with each other. On the web, APIs typically use HTTP requests and JSON/XML responses to allow access to structured data and services. This has enabled the combination of multiple online services into new applications. As more websites provide APIs, the web itself is becoming a platform that outside developers can build upon. However, there are also limitations and ethical issues to consider regarding APIs, including restricted access, changing formats, and debates around scraping data versus using official APIs.
O'Reilly SACon San Jose, CA - 2019 - API design tutorialTom Hofte
?
This document discusses mapping a domain model to a RESTful web API. It begins with an introduction and agenda for the presentation. It then covers discovering the API domain by identifying domain entities, operations, and relationships. This involves analyzing use cases, events, and domain expert input. The document provides an example of mapping verbs and nouns to entities and operations. It emphasizes grouping related concepts into bounded contexts. The goal is to learn how to map the domain model to REST resources, representations, and operations to define the API interface.
The document discusses microservices and API management. It defines microservices as small, independent processes communicating via APIs to compose complex applications. Benefits include improved modularity, scalability, and fault isolation. API management provides tools to publish, secure, monitor, and analyze APIs. It allows enterprises to expose APIs internally or externally in a controlled manner. The document outlines considerations around microservices and features of API management systems.
ConnectME: connecting content for future TV & videoconnectme_project
?
Today, media material is increasingly digital and shifting to delivery via IP and the Web,
including cultural artifacts or broadcast television. This opens up the possibility of new
services deriving added value from such material by combining it with other material
elsewhere on the Web which is related to it or enhances it in a meaningful way, to the
benefit of the owner of the original content, the providers of the content enhancing it and
the end consumer who can access and interact with these new services. Since the
services are built around providing new experiences through connecting different related
media together, we consider such services to be Connected Media Experiences
(ConnectME).
In particular, much rich depth of information and service functionality associated to
content in video is not derived today due to a lack of suitably granular description of
video, including linking of video objects to the concepts they represent. For example,
news reports about local tourism and events are not linked to tourist information and
event¨Crelated services which a viewer may (spontaneously) wish to access and make
use of.
The technological result of the ConnectME project will be an end-to-end service platform
to host those added-value services over different networks, providing the common
required functionality of each service: multimedia annotation and subsequent enrichment
with related content from the Web, combined with the packaging and delivery of
synchronized multimedia presentations to the end device. At the device, intuitive user
interfaces must be developed so that the selection of on-screen objects and the
browsing of the associated content can be done in a non-disruptive and intuitive fashion.
As a result, ConnectME facilitates a new interactive media experience built on top of the
convergence of TV/video and the Web.
Some highlights and impression from the API Days Berlin + API Strat Europe // April 24-25, 2015
* microservices
* hypermedia API
* swagger
* 3scale API Gateway
Apply API Governance to RESTful Service APIs using WSO2 Governance Registry a...WSO2
?
This document discusses applying API governance to RESTful APIs using WSO2 Governance Registry and API Manager. It promotes these products for designing, implementing, and managing APIs at design time and runtime. Key points include establishing consumer/subscriber relationships, implementing versioning, and ensuring operational governance through monitoring, analytics, and quality of service controls.
Understanding API Architectures: Web API vs. Minimal API ¨C An In-Depth Compar...Polyxer Systems
?
In this comprehensive guide learn the distinctions between Web API & Minimal API for your project understanding and get detailed insights on framework differences, benefits & limits.
apidays London 2023 - Autonomous Agents, Zdenek Nemec, superface.aiapidays
?
apidays London 2023 - APIs for Smarter Platforms and Business Processes
September 13 & 14, 2023
Autonomous Agents: Forget about APIs
Zdenek Nemec, Founder & CTO, superface.ai
------
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/
Api Strat Portland 2017 Serverless Extensibility talkGlenn Block
?
The document discusses the evolution of extensibility for software-as-a-service (SaaS) products. It describes how extensibility was easier when companies hosted their own software but became more challenging with the rise of cloud computing and SaaS. Webhooks revolutionized SaaS extensibility by allowing third-party code to run isolated from the SaaS, but customers still had to host and manage the code. The document introduces serverless extensibility as the next step, where SaaS products can directly invoke third-party extensions running on serverless platforms without requiring customer management. Examples of serverless extensibility include Auth0 Extend and integrations with platforms like AWS Lambda.
Serverless extensibility allows third-party code to be securely executed within a Software as a Service (SaaS) product using serverless functions. This provides benefits over traditional webhooks by handling hosting and monitoring, and allowing custom code to be created and run directly within the SaaS product using an inline code editor. Serverless extensibility benefits both customers by lowering costs and barriers to customization, and SaaS providers by improving customer retention and enabling new integration possibilities. However, concerns remain around ensuring custom code is properly versioned, debugged and secured to prevent issues like vendor lock-in.
The document discusses the constraints of REST (REpresentational State Transfer) architectural style. It defines REST as a set of constraints for distributed hypermedia systems. The key constraints are that systems be stateless, cacheable, have a uniform interface, and include hypertext driving application state. The hypermedia constraint requires that hyperlinks define valid state transitions and drive the API, making it RESTful. The document provides examples of how to implement the hypermedia constraint using formats like HTML, Atom, and custom MIME types.
A RESTful API is only truly RESTful if it uses hypermedia to tell us about all the actions that can be performed on the curent resource, allowing us to traverse the API from a single entry point.
His session looks at REST and HATEOAS (Hypermedia As The Engine Of Application State) to illustrate good service structure. Ben will use the RESTful file sharing service fdrop.it to illustrate the various examples of how this can be used.
This session is recommended for architects and senior developers alike and will give a good grounding in writing excellent, self-explanatory RESTful services.
This document provides an overview of service design and REST architectures. It discusses key concepts like microservices, APIs, service boundaries, and Conway's Law. It explains that services should be organized around business capabilities and have well-defined interfaces. REST architectural styles are also covered, including the Richardson Maturity Model levels and best practices like resources, uniform interfaces, and HATEOAS. Overall, the document is a useful introduction to designing and modeling service-oriented systems using REST principles.
API Athens Meetup - API standards 22.03.2016Ivan Goncharov
?
APIs.guru is a platform that aims to serve as a Wikipedia for web APIs by providing documentation for APIs in one centralized location. It filters out private and unreliable APIs, standardizes documentation into the Swagger 2.0 format, and allows contributors to add and improve API descriptions. APIs.guru also seeks to address challenges of data and schema incompatibility between APIs by developing a system of common scalar and complex data types that can be referenced and converted between APIs.
This presentation aimed to explain what is REST and why it is commonly misunderstood. It focuses on describing REST from scientific point of view, based on Roy`s Fielding dissertation.
This document discusses the evolution of web APIs from SOAP to RESTful architectures. It covers the basics of REST including the Richardson maturity model, use of HTTP verbs and status codes, hypermedia, and content negotiation. Caching techniques are also discussed as a means of improving scalability. The overall summary is that HTTP provides a powerful application protocol for building web APIs and REST architectures allow these APIs to better leverage the inherent scaling capabilities of the web.
The document discusses APIs, defining them as interfaces that allow applications to communicate and share data over a network. It notes that APIs act as an interface between clients and servers, exposing backend data through operations, inputs, outputs, and data types. The document also outlines the benefits of APIs in standardizing communication and enabling reusability. It introduces common API terminology and types, focusing on web APIs which are the most widely used.
Modern APIs: The Non-Technical User¡¯s Guide | The Enterprise WorldEnterprise world
?
A Modern APIs (Application Programming Interface) is a software interface that allows two applications to communicate with each other. APIs have been around for quite a while.
Making Sense of Hypermedia APIs ¨C Hype or Reality?Akana
?
The document discusses hypermedia APIs and standards. It provides examples of different hypermedia formats including OData, Collection+JSON, HAL, Siren, JSON-API, JSON-LD, Mason, and UBER. It addresses arguments for and against hypermedia APIs. It also discusses how organizations can adopt hypermedia concepts and standards over time without a complete overhaul of their existing APIs.
Building Self Documenting HTTP APIs with CQRSDerek Comartin
?
Does your HTTP API expose your database structure?
HTTP endpoints that represent your database entities couples your consuming clients to the internals of your application. Making it much harder to change your API.
Go beyond serializing a database row into json by leveraging CQRS.
Start designing an HTTP API like a regular HTML website. Bringing the concepts of HTML links and forms to your API allows your clients to consume it with ease.
Attendees will learn how to design an HTTP API by leveraging CQRS and hypermedia to decouple their core application from their HTTP API.
This document discusses APIs (application programming interfaces) and their role in web development. It defines APIs as specifications that allow software components to communicate with each other. On the web, APIs typically use HTTP requests and JSON/XML responses to allow access to structured data and services. This has enabled the combination of multiple online services into new applications. As more websites provide APIs, the web itself is becoming a platform that outside developers can build upon. However, there are also limitations and ethical issues to consider regarding APIs, including restricted access, changing formats, and debates around scraping data versus using official APIs.
O'Reilly SACon San Jose, CA - 2019 - API design tutorialTom Hofte
?
This document discusses mapping a domain model to a RESTful web API. It begins with an introduction and agenda for the presentation. It then covers discovering the API domain by identifying domain entities, operations, and relationships. This involves analyzing use cases, events, and domain expert input. The document provides an example of mapping verbs and nouns to entities and operations. It emphasizes grouping related concepts into bounded contexts. The goal is to learn how to map the domain model to REST resources, representations, and operations to define the API interface.
The document discusses microservices and API management. It defines microservices as small, independent processes communicating via APIs to compose complex applications. Benefits include improved modularity, scalability, and fault isolation. API management provides tools to publish, secure, monitor, and analyze APIs. It allows enterprises to expose APIs internally or externally in a controlled manner. The document outlines considerations around microservices and features of API management systems.
ConnectME: connecting content for future TV & videoconnectme_project
?
Today, media material is increasingly digital and shifting to delivery via IP and the Web,
including cultural artifacts or broadcast television. This opens up the possibility of new
services deriving added value from such material by combining it with other material
elsewhere on the Web which is related to it or enhances it in a meaningful way, to the
benefit of the owner of the original content, the providers of the content enhancing it and
the end consumer who can access and interact with these new services. Since the
services are built around providing new experiences through connecting different related
media together, we consider such services to be Connected Media Experiences
(ConnectME).
In particular, much rich depth of information and service functionality associated to
content in video is not derived today due to a lack of suitably granular description of
video, including linking of video objects to the concepts they represent. For example,
news reports about local tourism and events are not linked to tourist information and
event¨Crelated services which a viewer may (spontaneously) wish to access and make
use of.
The technological result of the ConnectME project will be an end-to-end service platform
to host those added-value services over different networks, providing the common
required functionality of each service: multimedia annotation and subsequent enrichment
with related content from the Web, combined with the packaging and delivery of
synchronized multimedia presentations to the end device. At the device, intuitive user
interfaces must be developed so that the selection of on-screen objects and the
browsing of the associated content can be done in a non-disruptive and intuitive fashion.
As a result, ConnectME facilitates a new interactive media experience built on top of the
convergence of TV/video and the Web.
Some highlights and impression from the API Days Berlin + API Strat Europe // April 24-25, 2015
* microservices
* hypermedia API
* swagger
* 3scale API Gateway
Apply API Governance to RESTful Service APIs using WSO2 Governance Registry a...WSO2
?
This document discusses applying API governance to RESTful APIs using WSO2 Governance Registry and API Manager. It promotes these products for designing, implementing, and managing APIs at design time and runtime. Key points include establishing consumer/subscriber relationships, implementing versioning, and ensuring operational governance through monitoring, analytics, and quality of service controls.
Understanding API Architectures: Web API vs. Minimal API ¨C An In-Depth Compar...Polyxer Systems
?
In this comprehensive guide learn the distinctions between Web API & Minimal API for your project understanding and get detailed insights on framework differences, benefits & limits.
apidays London 2023 - Autonomous Agents, Zdenek Nemec, superface.aiapidays
?
apidays London 2023 - APIs for Smarter Platforms and Business Processes
September 13 & 14, 2023
Autonomous Agents: Forget about APIs
Zdenek Nemec, Founder & CTO, superface.ai
------
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/
Api Strat Portland 2017 Serverless Extensibility talkGlenn Block
?
The document discusses the evolution of extensibility for software-as-a-service (SaaS) products. It describes how extensibility was easier when companies hosted their own software but became more challenging with the rise of cloud computing and SaaS. Webhooks revolutionized SaaS extensibility by allowing third-party code to run isolated from the SaaS, but customers still had to host and manage the code. The document introduces serverless extensibility as the next step, where SaaS products can directly invoke third-party extensions running on serverless platforms without requiring customer management. Examples of serverless extensibility include Auth0 Extend and integrations with platforms like AWS Lambda.
Serverless extensibility allows third-party code to be securely executed within a Software as a Service (SaaS) product using serverless functions. This provides benefits over traditional webhooks by handling hosting and monitoring, and allowing custom code to be created and run directly within the SaaS product using an inline code editor. Serverless extensibility benefits both customers by lowering costs and barriers to customization, and SaaS providers by improving customer retention and enabling new integration possibilities. However, concerns remain around ensuring custom code is properly versioned, debugged and secured to prevent issues like vendor lock-in.
Deploying web apis on core clr to dockerGlenn Block
?
This document provides an overview of .NET Core, ASP.NET 5, and Docker. It introduces .NET Core as a cross-platform version of .NET that allows side-by-side app versioning. ASP.NET 5 is the new version of ASP.NET that is modular and runs on .NET Core, supporting Web UI and APIs. Docker is a tool that allows packaging apps and dependencies into standardized containers to enable portable development environments. The document provides links for additional information on these topics and an example contact API project using these technologies on GitHub.
This talk focus on what admins need to know about the HTTP Event Collector. Why it exists, how it differs from existing options, and how to configure, manage, deploy and scale it.
A Lap Around Developer Awesomeness in Splunk 6.3Glenn Block
?
The document discusses new developer features in Splunk 6.3, including the HTTP Event Collector for sending events directly to Splunk, custom alert actions for integrating with external systems, and improved custom search commands. It also demonstrates some of these features, such as sending events using the HTTP Event Collector and creating custom alert actions. Additional sessions are recommended for learning more about modular inputs, reference apps, and other developer tools in Splunk.
In this presentation, Glenn Block discusses how Splunk uses node.js in its products. Surprising, huh? Node shows up in various islands of Splunk¡¯s architecture from the Splunk Server, to middleware components, and finally in the SDKs. The focus here is on real world usage, the specific places where we chose to use node and why, as well as the team¡¯s experiences deploying it into production. What¡¯s Splunk? It¡¯s a product designed for data ingest and query for massive realtime data work loads. It is used by some of the largest organizations in the world.
Splunk, a smorgasboard for developing big data solutions Glenn Block
?
This document discusses developing big data solutions using Splunk. It provides an overview of Splunk's capabilities for collecting, analyzing and visualizing machine data from various sources. It also describes Splunk's developer platform for building custom apps and extensions, searching data, and sending data to Splunk from various platforms and languages. The document directs readers to Splunk's online resources for tutorials, code samples and support.
These are the slides for my September API Craft SF talk on how we built / design Splunk's API. You can find the video here: https://www.youtube.com/watch?v=vHXcDKK4eGY. My talk starts at about 60 mins. The other two are on Uber and Sift Science and you should watch them as well!
This document discusses tools for .NET developers to use Splunk. It introduces the Splunk SDK for C#, which allows developers to integrate with and extend Splunk using a modern asynchronous API. Logging libraries are presented that allow .NET applications to log directly to Splunk using common loggers like log4net and NLog. A Visual Studio extension is demonstrated that streamlines using these Splunk libraries in development. Code samples and demos show logging to Splunk and creating modular inputs.
The document discusses hypermedia and how it can be used to help clients navigate an API. It defines hypermedia as control information provided by an API to clients through links and forms. These controls allow clients to identify available actions and activate them to move between states. The document provides an example of how this could work in a issue tracking API, allowing clients to retrieve, open, close and search for issues. It also recommends implementing hypermedia with ASP.NET Web API and provides additional resources for further information.
The document provides an overview of the history of data from ancient times to modern technologies and the challenges of harnessing big data. It discusses how data is generated from a variety of sources at different frequencies and velocities and not all data is useful or accurate, highlighting issues of veracity. It then presents solutions for storing, processing, analyzing and visualizing large datasets including MapReduce, high-scale databases, distributed processing, data visualization tools, and end-to-end platforms.
This document discusses Edge, an open source module for Node.js that allows Node.js applications to leverage .NET capabilities by calling .NET libraries and services. Edge allows Node.js code to call into .NET code and .NET code to call back into Node.js code in a non-blocking way within the same process. It supports multiple .NET languages like C#, F# and Powershell. Edge enables access to Windows capabilities like the event log, registry, performance counters and more. It is extensible via additional Edge modules for SQL, Powershell, and other languages/platforms. The document provides code examples and links to the Edge GitHub repository and additional Edge modules.
The document discusses Glenn Block who is a node.js developer at Microsoft who develops infrastructure, tools and libraries for node.js on Azure and supports the node.js community. It provides information on deploying and managing node.js applications on Azure including commands for deploying from Git repositories, managing virtual machines, and building mobile backends with node.js and Windows Azure Mobile Services.
Building Systems with REST discusses how HTTP differs from RPC and how it enables intermediaries through its use of resources and representations. The document outlines how HTTP is a transfer protocol rather than a transport protocol and how following its semantics allows functionality through firewalls. It advocates for building systems according to REST principles by decoupling concerns and focusing on resources, representations, and hypermedia.
22. COLLECTION
+JSON HTML
HAL ATOM
Media Types
Hypermedia is conventionally
surfaced via the media type SIREN
Hypermedia can also be
surfaced via headers
23. Formatters and Media Type
Hypermedia
Formatter
Media Type API
Formatters create media type Formatter Controller
representations from objects
Media Type
Formatters are the key place Formatter
for hypermedia to be rendered
24. Controller
Media Type
populates a
model with
links
Models
Media Type API
One approach is to have a Formatter Controller
media type speci?c model
Formatter
renders the
The application populates the model and
links
model, and a custom formatter
renders it
25. Controller
Media Type
returns a set
of DTOs
Templates
Media Type API
Another is to have media type Formatter Controller
speci?c templates.
Formatter
The application returns a model renders
template
with links
passed to a formatter.
The formatter renders using a
a template (like razor)