Filip Rogaczewski - Atlassian Connect Team Lead.
Presentation from Gdansk University of Technology about integration business application in the cloud i.e. how to integrate 50 000+ servers together.
API Basics discusses software defined networking (SDN) and REST APIs. SDN separates the control plane and data plane in network devices to allow remote configuration. REST APIs use HTTP to enable communication between applications through requests and responses that include resources, parameters, headers and payloads in JSON or XML format. The document provides examples of REST API components like endpoints, verbs, parameters and data formats to help understand how to work with REST APIs.
Your visitors interact with content, not with your website. Content consistency is crucial to a successful user experience. Re-publishing is one option but it’s an inside-out action that relies on the authority controlling where the information goes. An API frees your data and the responsibility to where it is published and accessed. Mobile is a major consumer for your API but not every API is setup to handle the mass of requests coming from those devices. Learn how to mobile devices consume API’s with limited or low bandwidth and how to to tailor your API to be as efficient and effective as possible.
http://environmentsforhumans.com/2012/doteduguru-summit/
Designing your API Server for mobile appsMugunth Kumar
The document provides guidance on designing APIs for server applications. It discusses using the appropriate HTTP verbs like GET, POST, PUT, and DELETE based on the database operation. It emphasizes the importance of documentation, de-normalizing data into top-level models, versioning models over time, and implementing caching at the server through expiration and validation models. The document uses examples to illustrate best practices for API design.
As you go into the cloud, the applications you are building will often be built on service-oriented architectures that communicate through RESTful APIs. Where API design and development used to be an uncommon thing, today it has become a basic application requirement. George Reese will cover the basic considerations in designing and implementing an API for your applications.
George Reese is the author of a number of technology books and a regular speaker on RESTful APIs, cloud computing, Java, and database systems. His most recent books are The REST API Design Handbook and O’Reilly’s Cloud Application Architectures. Professionally, he is the Executive Director of Cloud Computing at Dell as a result of Dell's recent acquisition of Enstratius, a company George co-founded. George has also led a number of Open Source projects, including several MUD libraries and the Imaginary Home home automation libraries for Java. He is also the primary maintainer of Dasein Cloud, a cloud abstraction API for Java.
George holds a BA from Bates College in Maine and an MBA from the Kellogg School of Management at Northwestern University.
Best Practices for Architecting a Pragmatic Web API.Mario Cardinal
This presentation teach how to design a real-world and pragmatic web API. It draws from the experience Mario Cardinal have gained over the years being involved architecting many Web API. This presentation begins by differencing between a Web and a REST API, and then continue with the design process. We conclude with the core learnings of the session which is a review of the best practices when designing a web API. Armed with skills acquired, you can expect to see significant improvements in your ability to design a pragmatic web API.
Data normalization across API interactionsCloud Elements
The document discusses the importance of data normalization when integrating APIs. It notes that APIs often have inconsistent data formats and endpoints that are not standardized. This can make APIs difficult to reuse and maintain. The document proposes normalizing data into a common structure and configuration-based transformations to map different APIs and data formats to this normalized structure. This allows applications to have a unified view of data across APIs and makes the APIs more reusable and interchangeable. It also discusses using asynchronous interactions and message buses to link normalized data across APIs rather than application-level logic.
This document discusses building web APIs with ASP.NET Web API. It covers the objectives of seeing how REST and web services can access data, building a first Web API service, using routing conventions, and modifying services for CRUD operations. The agenda includes explaining what Web API is, creating a first service, routing, and creating a service for CRUD. It also defines REST concepts like HTTP methods GET, POST, PUT, and DELETE and their typical uses for selecting, adding, editing, and deleting data.
SPCA2013 - Developing Provider-Hosted Apps for SharePoint 2013NCCOMMS
The document discusses building apps for Microsoft platforms like Office 365 and SharePoint. It provides an overview of different types of apps like immersive full-page apps, app parts, and extension apps. It also covers topics like authentication, permissions, and using APIs and services to integrate apps across platforms and devices.
- The document discusses RESTful modules in Zend Framework 2 (ZF2).
- It describes creating a ZF2 module that implements URI tunneling to create RESTful services, allowing resources to be accessed via URIs with parameters specifying the model and action.
- It also explains how to create a ZF2 module that follows CRUD operations to perform standard create, read, update and delete actions on resources using HTTP verbs like GET, POST, PUT, DELETE.
Building a non-blocking REST API in less than 30 minutesThomas Meijers
This document discusses building a non-blocking REST API in Play Framework and Scala in less than 30 minutes. It will cover creating a simple REST API for managing work hours using ScalikeJDBC for asynchronous database access. The API will include models for Employee, Project, and TimeEntry connected to a relational database, allowing CRUD operations on time entries. It also discusses best practices for REST APIs like adhering to Fielding constraints and using JSON for request/response bodies.
This document summarizes a presentation about developing provider hosted SharePoint apps. It discusses:
1) What provider hosted apps are and how they are hosted outside of SharePoint and can be developed using any language.
2) The history of customizing SharePoint and how apps differ from past methods like farm solutions.
3) The options for hosting apps, including provider hosted, autohosted, and SharePoint hosted.
4) Considerations for providers like maintaining hosting costs and updating customers.
5) The development process including using Visual Studio and the app manifest to define permissions.
6) How to authenticate with OAuth and make calls to SharePoint using the client-side object model.
AngularJS is a JavaScript framework that extends HTML and allows developers to create dynamic web applications. It features two-way data binding, services for making HTTP requests, and directives for common tasks like iteration and conditional display. The presentation discusses how to build AngularJS applications using core features like controllers, filters, forms, and routing. It also explains how to integrate AngularJS and ColdFusion by building RESTful APIs with CF components, handling data loading, and improving security. The demo application illustrates techniques for building forms, working with JSON data, and testing AngularJS applications.
This document discusses developing and managing APIs with Adobe ColdFusion and API Manager. It covers designing APIs, onboarding APIs to API Manager, building blocks like security, SLA, and analytics. It provides examples of creating REST APIs with ColdFusion by defining attributes in cfcomponent, cffunction, and cfargument tags. It also discusses registering APIs as web services and responding to REST requests. Authentication methods like OAuth 2.0 and securing APIs are explained in detail.
This document discusses strategies for delivering content across different devices and platforms. It covers responsive design which adapts the layout based on the device and adaptive design which provides optimized experiences for different devices. The document also discusses using PhoneGap to build cross-platform mobile apps and leveraging content synchronization to keep mobile apps updated.
Building SharePoint 2013 Apps - Architecture, Authentication & Connectivity APISharePointRadi
This document provides an overview of building SharePoint 2013 apps, including their architecture, authentication, and connectivity APIs. It discusses the app infrastructure and how apps work, authentication models for apps, and the Connectivity API for accessing SharePoint data from apps. The presentation also covers server-side and client-side app hosting models, app shapes including full pages and parts, and the app manifest and package.
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.
Sham Hassan Chikkegowda, CS Engineer, and Timothee Maret, Senior Developer, of Adobe provide a review of using Security Assertion Markup Language (SAML) with your Experience Manager deployments. SAML is an XML-based, open-standard data format for exchanging authentication and authorization data between parties, in particular, between an identity provider and a service provider. SAML is a product of the OASIS Security Services Technical Committee. To watch the session on demand at http://bit.ly/AEMGems72016 or the MP4 version http://bit.ly/AEMGem72016
[Rodrigo Pinto] Being an enterprise consultant in many companies across the globe, the most common phrase I come across each client\supplier I've helped last year is "each team as a different way to do it"In small\medium\huge companies, this is a major overkill.In this session learn how you can structure your teams, processes, tools, and development for SharePoint Enterprise solutions.
The document discusses the key concepts of REST (Representational State Transfer), which include resources, representations, operations, hypertext, and statelessness. REST aims to build distributed systems that are simple to understand and scale well by applying these concepts. Resources are uniquely identified and manipulated via standard operations like GET, PUT, POST, and DELETE. State is stored on clients rather than servers to improve scalability and redundancy.
The document describes Napster's REST API. Napster provides a REST API for developers to access its music catalog and build applications. The API allows searching, retrieving metadata and streaming music. The API team is small with 6 members and started the project in July, releasing the first version in January for the CES event. The API documentation is available at http://developer.napster.com/docs/.
The document discusses content repositories like Apache Jackrabbit and web frameworks like Apache Sling. It explains that Jackrabbit is a Java content repository API that provides structured and unstructured content storage, properties, versioning, and access control. Sling is a web framework that is built on top of content repositories, implements OSGI, and offers scriptable application layers, RESTful capabilities, and extensibility through OSGI bundles. The combination of Jackrabbit and Sling aims to meet challenges of web application development by enabling rapid prototyping, high dynamism, maintainability, and a REST architecture.
Practical management of development & QA environments for SharePoint 2013SharePointRadi
Speakers: Ognyan Guglev & Radi Atanassov
In this session we will share how we maintain our environments for development, quality assurance and demonstration purposes. We've put in a lot of thought into optimising what we do and to deliver a highly-available, performing experience to our delivery teams.
For our work we have over 90 farms, so the challenges in maintaining them are not insignificant. Due to advances in the SharePoint platform we believe it is becoming increasingly difficult to maintain SharePoint environments for every project, client or product. We have a strong requirement to be flexible and efficient on hardware and at the same time be able to spawn development environments on demand. Automation here with SCVMM is key to a sustainable work front.
We will discuss our goals as a consultancy company, how we deal with licenses, whether we prefer centralised or decentralised team environments, how to automate VM's with Service Center Virtual Machine Manager, how to deal with Microsoft SQL and Active Directory, DNS and IP addresses, what we do to make the developer's time as productive as possible and a whole set of other tips and tricks we put in place. We will also share our Apps development and Office 365 development landscapes.
Overall, this session is infrastructure focused, but will be valuable and practical both for administrators and developers, it will cover experiences for both sides of the spectrum.
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.
Sling is a RESTful web application framework that uses JCR repositories like Apache Jackrabbit as its data store. Sling maps HTTP requests to content resources in the repository and uses the resource type to locate the appropriate rendering script. The request URL is decomposed into the resource path, selectors, extension, and suffix path. Sling searches for a node matching the resource path and then locates a script based on the resource type and any selectors. Sling scripts cannot be called directly and must be resolved through the resource to follow REST principles. This document discusses how Sling maps URLs to content resources and scripts to process requests.
This document provides an overview and introduction to Google App Engine. It discusses how App Engine addresses the scalability challenges of traditional web application stacks and allows applications to automatically scale on Google's infrastructure. It outlines the core App Engine services and APIs for data storage, caching, mail, messaging and background tasks. Finally, it covers getting started with App Engine, including downloading the SDK, writing a simple application, deploying locally and live, and next steps for learning more.
This document discusses best practices for designing RESTful web services. It begins by defining REST as an architectural style for distributed hypermedia systems, rather than a protocol or standard. The document outlines the constraints and principles of RESTful design, including client-server architecture, statelessness, cacheability and a uniform interface. It then evaluates several common approaches to building web APIs in terms of how well they follow REST principles. The document argues that an API designed according to REST principles, using hypermedia and self-descriptive messages, results in a loosely coupled and scalable design.
Everyday we create services for our systems. A lot of people create RESTful APIs but much more can be accomplished by following best practices and treating your APIs as a product to be consumed by fellow team members, systems and 3rd party consumers.
We will discuss what makes a great RESTful API and share some of our experiences building some that power real systems.
This was part of JOSA TechTalks project within Jordan Open Source Association, presented by Yazan Quteishat and Tambi Jalouqa.
The document discusses several challenges and considerations for networks and affiliates in designing and implementing APIs and mashups. It addresses questions around API architecture design, defining standard data formats, scalability, read/write functionality, and support for affiliates. It also covers common challenges like complex programming, browser compatibility, and maintenance, and potential solutions. While mashups require more development and maintenance costs, they also provide opportunities to attract users through new interactive features and access new markets.
- The document discusses RESTful modules in Zend Framework 2 (ZF2).
- It describes creating a ZF2 module that implements URI tunneling to create RESTful services, allowing resources to be accessed via URIs with parameters specifying the model and action.
- It also explains how to create a ZF2 module that follows CRUD operations to perform standard create, read, update and delete actions on resources using HTTP verbs like GET, POST, PUT, DELETE.
Building a non-blocking REST API in less than 30 minutesThomas Meijers
This document discusses building a non-blocking REST API in Play Framework and Scala in less than 30 minutes. It will cover creating a simple REST API for managing work hours using ScalikeJDBC for asynchronous database access. The API will include models for Employee, Project, and TimeEntry connected to a relational database, allowing CRUD operations on time entries. It also discusses best practices for REST APIs like adhering to Fielding constraints and using JSON for request/response bodies.
This document summarizes a presentation about developing provider hosted SharePoint apps. It discusses:
1) What provider hosted apps are and how they are hosted outside of SharePoint and can be developed using any language.
2) The history of customizing SharePoint and how apps differ from past methods like farm solutions.
3) The options for hosting apps, including provider hosted, autohosted, and SharePoint hosted.
4) Considerations for providers like maintaining hosting costs and updating customers.
5) The development process including using Visual Studio and the app manifest to define permissions.
6) How to authenticate with OAuth and make calls to SharePoint using the client-side object model.
AngularJS is a JavaScript framework that extends HTML and allows developers to create dynamic web applications. It features two-way data binding, services for making HTTP requests, and directives for common tasks like iteration and conditional display. The presentation discusses how to build AngularJS applications using core features like controllers, filters, forms, and routing. It also explains how to integrate AngularJS and ColdFusion by building RESTful APIs with CF components, handling data loading, and improving security. The demo application illustrates techniques for building forms, working with JSON data, and testing AngularJS applications.
This document discusses developing and managing APIs with Adobe ColdFusion and API Manager. It covers designing APIs, onboarding APIs to API Manager, building blocks like security, SLA, and analytics. It provides examples of creating REST APIs with ColdFusion by defining attributes in cfcomponent, cffunction, and cfargument tags. It also discusses registering APIs as web services and responding to REST requests. Authentication methods like OAuth 2.0 and securing APIs are explained in detail.
This document discusses strategies for delivering content across different devices and platforms. It covers responsive design which adapts the layout based on the device and adaptive design which provides optimized experiences for different devices. The document also discusses using PhoneGap to build cross-platform mobile apps and leveraging content synchronization to keep mobile apps updated.
Building SharePoint 2013 Apps - Architecture, Authentication & Connectivity APISharePointRadi
This document provides an overview of building SharePoint 2013 apps, including their architecture, authentication, and connectivity APIs. It discusses the app infrastructure and how apps work, authentication models for apps, and the Connectivity API for accessing SharePoint data from apps. The presentation also covers server-side and client-side app hosting models, app shapes including full pages and parts, and the app manifest and package.
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.
Sham Hassan Chikkegowda, CS Engineer, and Timothee Maret, Senior Developer, of Adobe provide a review of using Security Assertion Markup Language (SAML) with your Experience Manager deployments. SAML is an XML-based, open-standard data format for exchanging authentication and authorization data between parties, in particular, between an identity provider and a service provider. SAML is a product of the OASIS Security Services Technical Committee. To watch the session on demand at http://bit.ly/AEMGems72016 or the MP4 version http://bit.ly/AEMGem72016
[Rodrigo Pinto] Being an enterprise consultant in many companies across the globe, the most common phrase I come across each client\supplier I've helped last year is "each team as a different way to do it"In small\medium\huge companies, this is a major overkill.In this session learn how you can structure your teams, processes, tools, and development for SharePoint Enterprise solutions.
The document discusses the key concepts of REST (Representational State Transfer), which include resources, representations, operations, hypertext, and statelessness. REST aims to build distributed systems that are simple to understand and scale well by applying these concepts. Resources are uniquely identified and manipulated via standard operations like GET, PUT, POST, and DELETE. State is stored on clients rather than servers to improve scalability and redundancy.
The document describes Napster's REST API. Napster provides a REST API for developers to access its music catalog and build applications. The API allows searching, retrieving metadata and streaming music. The API team is small with 6 members and started the project in July, releasing the first version in January for the CES event. The API documentation is available at http://developer.napster.com/docs/.
The document discusses content repositories like Apache Jackrabbit and web frameworks like Apache Sling. It explains that Jackrabbit is a Java content repository API that provides structured and unstructured content storage, properties, versioning, and access control. Sling is a web framework that is built on top of content repositories, implements OSGI, and offers scriptable application layers, RESTful capabilities, and extensibility through OSGI bundles. The combination of Jackrabbit and Sling aims to meet challenges of web application development by enabling rapid prototyping, high dynamism, maintainability, and a REST architecture.
Practical management of development & QA environments for SharePoint 2013SharePointRadi
Speakers: Ognyan Guglev & Radi Atanassov
In this session we will share how we maintain our environments for development, quality assurance and demonstration purposes. We've put in a lot of thought into optimising what we do and to deliver a highly-available, performing experience to our delivery teams.
For our work we have over 90 farms, so the challenges in maintaining them are not insignificant. Due to advances in the SharePoint platform we believe it is becoming increasingly difficult to maintain SharePoint environments for every project, client or product. We have a strong requirement to be flexible and efficient on hardware and at the same time be able to spawn development environments on demand. Automation here with SCVMM is key to a sustainable work front.
We will discuss our goals as a consultancy company, how we deal with licenses, whether we prefer centralised or decentralised team environments, how to automate VM's with Service Center Virtual Machine Manager, how to deal with Microsoft SQL and Active Directory, DNS and IP addresses, what we do to make the developer's time as productive as possible and a whole set of other tips and tricks we put in place. We will also share our Apps development and Office 365 development landscapes.
Overall, this session is infrastructure focused, but will be valuable and practical both for administrators and developers, it will cover experiences for both sides of the spectrum.
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.
Sling is a RESTful web application framework that uses JCR repositories like Apache Jackrabbit as its data store. Sling maps HTTP requests to content resources in the repository and uses the resource type to locate the appropriate rendering script. The request URL is decomposed into the resource path, selectors, extension, and suffix path. Sling searches for a node matching the resource path and then locates a script based on the resource type and any selectors. Sling scripts cannot be called directly and must be resolved through the resource to follow REST principles. This document discusses how Sling maps URLs to content resources and scripts to process requests.
This document provides an overview and introduction to Google App Engine. It discusses how App Engine addresses the scalability challenges of traditional web application stacks and allows applications to automatically scale on Google's infrastructure. It outlines the core App Engine services and APIs for data storage, caching, mail, messaging and background tasks. Finally, it covers getting started with App Engine, including downloading the SDK, writing a simple application, deploying locally and live, and next steps for learning more.
This document discusses best practices for designing RESTful web services. It begins by defining REST as an architectural style for distributed hypermedia systems, rather than a protocol or standard. The document outlines the constraints and principles of RESTful design, including client-server architecture, statelessness, cacheability and a uniform interface. It then evaluates several common approaches to building web APIs in terms of how well they follow REST principles. The document argues that an API designed according to REST principles, using hypermedia and self-descriptive messages, results in a loosely coupled and scalable design.
Everyday we create services for our systems. A lot of people create RESTful APIs but much more can be accomplished by following best practices and treating your APIs as a product to be consumed by fellow team members, systems and 3rd party consumers.
We will discuss what makes a great RESTful API and share some of our experiences building some that power real systems.
This was part of JOSA TechTalks project within Jordan Open Source Association, presented by Yazan Quteishat and Tambi Jalouqa.
The document discusses several challenges and considerations for networks and affiliates in designing and implementing APIs and mashups. It addresses questions around API architecture design, defining standard data formats, scalability, read/write functionality, and support for affiliates. It also covers common challenges like complex programming, browser compatibility, and maintenance, and potential solutions. While mashups require more development and maintenance costs, they also provide opportunities to attract users through new interactive features and access new markets.
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20Phil Wilkins
The document discusses different API technologies including gRPC, GraphQL, and REST. It provides overviews of each technology, describing their origins, key concepts, pros, and cons. gRPC was developed by Google and uses protocol buffers for messages and HTTP/2 for transport. GraphQL was created by Facebook and uses a query language for clients to specify the exact data they need. REST is the more established standard based on HTTP and uses URIs for identification of resources.
The document provides an overview and agenda for an AJAX team meeting. It discusses what AJAX is, the benefits of using an AJAX approach, and proposes a testing strategy for an e-docket application that includes AJAX. The testing strategy involves functional, performance, usability, installation/compatibility, security, scalability, and reliability testing. Specific test ideas are also outlined.
APIs are important for integrating external and internal customers, enabling partners, and building business logic that can be used across different platforms and applications. This document discusses REST principles for API design including giving resources IDs, linking resources, using standard methods, supporting multiple representations, and making requests stateless. It also covers topics like ROA vs SOA, REST vs SOAP, adoption trends, authentication, versioning, and common anti-patterns.
Creating a RESTful api without losing too much sleepMike Anderson
REST (REpresentational State Transfer) continues to be the dominant way to provide a standard method for data access in a web environment. There are a lot of discussions on what makes a good RESTful API, but examples are sometimes hard to come by. How do you structure your code to enable REST but also ensure that you can update and maintain the code over the long haul?
It this talk I will walk through some of the things that I have learned in implementing a RESTful API. We will discuss some of the following topics:
* Landmines - what are some things not to do when developing your REST stack
* Pure data vs hypermedia (HATEOAS anyone?)
* Layering the stack to enable automated testing at all tiers
* Securing your endpoints
* Testing -- tools to explore and validate your endpoints
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Mack Hardy
Mack Hardy, Dave Tarc, Damien Norris of Affinity Bridge presenting at Pacific Northwest Drupal Summit in Vancouver, October 5th, 2013. The presentation walks through management of releases, deployment strategies and build strategies with drupal features, git, and make files. Performance and caching is also covered, as well as specific tips and tricks for configuring apache and managing private files.
Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...Callon Campbell
The document announces an Azure event in Toronto from May 5-7th that Microsoft is sponsoring. It provides information about accessing Microsoft documentation and training resources. It also introduces the speaker, Callon Campbell, who is a Microsoft MVP in Azure and consultant specializing in app migration, modernization and Azure. The agenda covers what serverless means, demos of building serverless APIs with Azure Functions and API Management, and hosting Function apps.
This document discusses testing RESTful web services using REST Assured. It provides an overview of REST and HTTP methods like GET, POST, PUT, DELETE. It explains why API automation is required for early defect detection, contract validation, stopping builds on failure. REST Assured allows testing and validating REST services in Java and integrates with frameworks like JUnit and TestNG. It provides methods to format HTTP requests, send requests, validate status codes and response data. REST Assured also handles authentication mechanisms. The document provides instructions on adding the REST Assured Maven dependency and writing tests, including an example of a GET request.
Secrets of Custom API Policies on the Oracle API PlatformPhil Wilkins
This document provides an overview and summary of custom API policies on the Oracle Cloud. It discusses using Groovy and Java to create custom policies, the key elements of custom Java policies, demoing the tooling, and how UI elements are linked together. It also compares Groovy and Java for custom policies and provides several useful Oracle Cloud resources.
The document discusses Acumatica's new contract-based web services API. It provides an overview of the goals, reasons for developing a new API, how to use the API, and upcoming enhancements. Key points include tight coupling of the old API to the UI, ease of use improvements, and future proofing the platform. Examples are given of retrieving data, creating/updating records, and invoking actions using the new API.
analytic engine - a common big data computation service on the awsScott Miao
This document summarizes Scott Miao's presentation on Analytic Engine (AE), a common big data computation service on AWS. AE provides a RESTful API for users to create AWS EMR clusters, submit jobs to clusters, and delete clusters. It handles job scheduling and delivery to clusters to optimize usage of AWS resources. Using AE and AWS services like EMR and S3 allows Trend Micro to scale their data and computation needs elastically with reduced operational overhead compared to managing infrastructure on their own.
Modern REST API design principles and rules.pdfAparna Sharma
Typically, when updating or developing an API like Newsdata.io which is a news API for a service to provide news data with quick response time, there are lengthy discussions about the API’s structure, naming, and functions. Although, over time, certain rules have emerged that can be applied to the process and aid in reaching a common ground while developing.
Getting Started with API Management – Why It's Needed On-prem and in the CloudRevelation Technologies
APIs are one of the main elements of cloud services. All major cloud service providers expose REST APIs to allow you to programmatically access their services and capabilities. SOAP and REST are the two most common ways of exposing APIs, whether to external, partner, cloud, or internal developers.
The concept of API management is to publish these web APIs for consumption, and includes capabilities such as monitoring, security, and documentation.
This presentation introduces basic concepts of APIs, API management, cloud REST services, and a brief walkthrough of WSO2 API Manager and Oracle API Gateway to see how you can centrally publish, expose, and secure APIs, essentially virtualizing your backend services.
Todays web front-end applications architecture. All resources shared at the end of presentation.
Full sources on:
https://lnkd.in/gyQuFKK
https://lnkd.in/gZK8Sp3
Main focus of the talk is to communicate some key concepts of designing/implementing APIs based on an enterprise grade API Standards and Guidelines. We will try to handcraft few API recipes(i.e. implementation design) with real-life examples mixed with a live coding session. While working on each recipe, we will delve into the rationale behind design decisions and best practices. We believe that these concepts will help a developer build a comprehensive API solution from scratch.
This document provides an overview and summary of Azure Logic Apps and API Apps. It discusses how Logic Apps allow users to easily automate business processes across Software as a Service (SaaS) applications and on-premises systems using a visual no-code designer. It also describes how API Apps make it simple to build and consume APIs in Azure. The document highlights some of the key capabilities and built-in connectors for Logic Apps, and tools for developing APIs in API Apps using Visual Studio. It provides a comparison of features between Logic Apps and the previous BizTalk Services offering.
The Fluke 925 is a vane anemometer, a handheld device designed to measure wind speed, air flow (volume), and temperature. It features a separate sensor and display unit, allowing greater flexibility and ease of use in tight or hard-to-reach spaces. The Fluke 925 is particularly suitable for HVAC (heating, ventilation, and air conditioning) maintenance in both residential and commercial buildings, offering a durable and cost-effective solution for routine airflow diagnostics.
Value Stream Mapping Worskshops for Intelligent Continuous SecurityMarc Hornbeek
This presentation provides detailed guidance and tools for conducting Current State and Future State Value Stream Mapping workshops for Intelligent Continuous Security.
Taking AI Welfare Seriously, In this report, we argue that there is a realist...MiguelMarques372250
In this report, we argue that there is a realistic possibility that some AI systems
will be conscious and/or robustly agentic in the near future. That means that the
prospect of AI welfare and moral patienthood — of AI systems with their own
interests and moral significance — is no longer an issue only for sci-fi or the
distant future. It is an issue for the near future, and AI companies and other actors
have a responsibility to start taking it seriously. We also recommend three early
steps that AI companies and other actors can take: They can (1) acknowledge that
AI welfare is an important and difficult issue (and ensure that language model
outputs do the same), (2) start assessing AI systems for evidence of consciousness
and robust agency, and (3) prepare policies and procedures for treating AI systems
with an appropriate level of moral concern. To be clear, our argument in this
report is not that AI systems definitely are — or will be — conscious, robustly
agentic, or otherwise morally significant. Instead, our argument is that there is
substantial uncertainty about these possibilities, and so we need to improve our
understanding of AI welfare and our ability to make wise decisions about this
issue. Otherwise there is a significant risk that we will mishandle decisions about
AI welfare, mistakenly harming AI systems that matter morally and/or mistakenly
caring for AI systems that do not.
☁️ GDG Cloud Munich: Build With AI Workshop - Introduction to Vertex AI! ☁️
Join us for an exciting #BuildWithAi workshop on the 28th of April, 2025 at the Google Office in Munich!
Dive into the world of AI with our "Introduction to Vertex AI" session, presented by Google Cloud expert Randy Gupta.
The idea behind this session is to equip you with a practical, collaborative method to deeply understand your domain — not just from a technical perspective, but through a lens that aligns with how the business actually works.
By the end, you’ll walk away with a new mindset and tools you can take back to your team.
The role of the lexical analyzer
Specification of tokens
Finite state machines
From a regular expressions to an NFA
Convert NFA to DFA
Transforming grammars and regular expressions
Transforming automata to grammars
Language for specifying lexical analyzers
Building Security Systems in Architecture.pdfrabiaatif2
Building security systems are essential for protecting people, property, and assets within a structure. These systems include a range of technologies and strategies such as surveillance cameras (CCTV), access control systems, alarm systems, security lighting, and motion detectors. Modern security solutions often integrate smart technology, allowing remote monitoring and real-time alerts through mobile devices. Access control systems, like key cards or biometric scanners, ensure that only authorized individuals can enter certain areas, enhancing both safety and privacy. Alarm systems, whether triggered by unauthorized entry, fire, or environmental hazards, play a critical role in emergency response. Additionally, video surveillance acts as both a deterrent and a tool for investigating incidents. An effective building security system is carefully planned during the design phase, taking into account the building's size, purpose, and potential risks. Ultimately, robust security systems are vital for ensuring peace of mind, protecting lives, and preserving valuable assets.
Engineering Chemistry First Year Fullerenes5g2jpd9sp4
Ad
Business Applications Integration In The Cloud
1. Previously worked in
Lufthansa, NASA, Intel
Running, biking,
paragliding
Travelling
Photography
Filip Rogaczewski • [email protected] •
Spartez/Atlassian
ETI graduate
Team leader in Spartez
8. WHY
Service Oriented Architecture
Scales the application
• Loosely coupled services
• Less resource restrictions for services
• Communication with well defined API
• Allows better technological choice for services
• Distinct deployment models
Service
Service
CONTAINER
Integration HTTP
9. WHY
Service Oriented Architecture
Different hardware stack for services in Facebook
Type I
Web
Type III
DB
Type IV
Hadoop
Type V
Haystack
Type VI
Cache
Type VII
Cold storage
CPU (2) Xeon
E5-2670
(2) Xeon
E5-2660
(2) Xeon
E5-2660
(2) Xeon
E5-2660
(2) Xeon
E5-2660
(2) Xeon
E5-2660
Memory 16GB 144 GB 64 GB 96 GB 144 GB 144 GB
Disk (1) 500 GB
SATA
3.2TB PCI
Flash (15) 4TB SAS (30) 4TB SAS (1) 2 TB
SATA
(240) 4TB
SATA
11. WHY
Service Oriented Architecture
More effective organisation
• Each team running a single service.
• Each team is cross-functional (designers, product managers,
testers, developers, ops-engineers).
• Decision about roadmap happen locally.
• Geographically collocated teams, one service in USA, second
service in Australia, third in Poland.
• Easier to scale work, multiple teams working at the same
time.
13. WHY
In Process Integration
CONTAINER
Add-On
In Process
• Resources are shared
• Access to all data
• Doesn’t scale
Tied to the stack
• Language
• Frameworks
Add-On No clear API boundaries
18. WHY
Integrations of multiple applications
You can sell all your products instead of one.
19. WHY
Extending with marketplace
Customers always want more features.
If you can’t give it to them, let someone else do this - marketplace.
Cash 25% of what external vendors sold using your marketplace.
21. WHY
Enterprise customers
Customers who want to integrate your product with their existing
applications
HR
Communi
cation
Environm
ent
CRM
Asset
manageme
nt
Supply
GRC chain
Finance
22. WHY
Acquisitions
You buy next fantastic company.
You want to quickly integrate this feature.
Can take couple of months if you have an integration layer ready.
Might never be done, if you don’t.
???
23. CASE STUDIES
HOW
Agenda
WHY
UI INTEGRATION
OPPORTUNITY REST API
MESSAGING
MULTI-TENANCY
DEPLOYMENT
26. HOW
Iframe
Never embed HTML from external sites.
When using iframes, browser provides security:
• Don’t set sandboxing to allow-forms, allow-scripts, allow-same-
origin, allow-top-navigation. This is a security model
very difficult to manage.
Sign the URL so server rendering content can authenticate the
request.
Optionally pass context parameters.
Use CORS or postMessage for communication.
Performance issues.
28. HOW
Security: How to verify this request?
https://whoslooking-stg.herokuapp.com/poller?issue_key=ACJIRA-157
&tz=Australia%2FSydney
&loc=en-US
&user_id=frogaczewski
&user_key=frogaczewski
&xdm_e=https%3A%2F%2Fptop.only.wip.la%3A443%2Fhttps%2Fecosystem.atlassian.net&xdm_c=channel-whoslooking-connect-stg__
whos-looking&cp=&lic=none
&jwt=
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmcm
9nYWN6ZXdza2kiLCJxc2giOiJiZjA1NmU5MjEzYjBkODIyNDA
wNzg4YmQ4MThhNDk4YmM0NGQ0OTMyYTM2MWU1Mjk1Zj
cwMTczOGRiMGRjOTA2IiwiaXNzIjoiamlyYTo1OTk3NWQ2Ny
00Y2EwLTRlOWUtOTk2MC1kMWFhYWU3NmJiMzkiLCJleHA
iOjE0MTMxMzI2NTksImlhdCI6MTQxMzEzMjQ3OX0.Da8VXjL
_9z5xyzErtaJohHKH-xx-0Rp-9MF_xtIvcaY
29. HOW
Security: URL signing requirements
1. Signature for validation who created the request.
2. Issuer: identify the application instance which issued the
request. Is this jiraForEti or is this jiraForGdanskUniversity?
3. Expiration time of the token. Time in UTC after which you
should no longer accept the token.
4. Query hash. Prevents URL tampering.
5. Id of the user for authorisation.
6. Algorithm used to sign the URL.
30. HOW
Security: Signature validation
1. Token has the following form:
2. Upon installation host and service exchange a shared secret.
3. Service receives a public key of the host. Service have to verify
the public key. Each service expose REST API for public key
retrieval.
4. During request service extracts the issuer and signature
algorithm from the URL and retrieves the sharedSecret for the
issuer.
5. Service signs encodedHeader.encodedClaims with algorithm
from the header and verifies if the signatures match. If yes, return
content. If no, return 403 (forbidden).
32. HOW
Sandboxing
An iframe instance whose parent and child reside on different
domains or hostnames constitutes a sandboxed environment. The
contained page has no access to its parent. These restrictions are
imposed by the browser's same origin policy.
There are a few limitations applicable to iframes:
• Stylesheet properties from the parent do not cascade to the
child page
• Child pages have no access to its parent's DOM and JavaScript
properties
• Likewise, the parent has no access to its child's DOM or
JavaScript properties.
33. HOW
Cross origin resource sharing (CORS)
1. Keep the list of whitelisted URL with services allowed to access
server resources.
2. When executing cross-origin request, the browser header:
Origin: http://service.atlassian.net
3. If the service is whitelisted, server should return:
Access-Control-Allow-Origin: http://service.atlassian.net
DO NOT USE JSONP
4. Multiple headers for:
choosing a subset of allowed headers
(Access-Control-Allow-Headers)
choosing a subset of allowed HTTP methods
(Access-Control-Allow-Methods)
34. HOW
window.postMessage
1. Create clear JS API between parent and iframe.
2. Parent creates an event listener for a message.
window.addEventListener("message", executeXHR, false);
3. Client executes:
window.parent.postMessage(“request",
JSON.stringify({url: ‘/rest/api/2/dashboard’,
success: function() { alert(“1”);}}
)
4. Parent executes the request on behalf of the child and
postMessage the results.
5. Difficult to implement. Host should provide a library with
abstraction over JS functions it can handle.
36. HOW
Performance: Apdex
New relic: measuring user satisfaction
• In Atlassian
• Satisfied 1s
• Tolerating 3s
• Our Apdex goal is 0.9
• Apdex between 0.85 to 0.93
is considered to be a good
score.
• For business applications
users are more tolerant then
for customer applications
• Financial services are out of
scope.
37. HOW
Performance: Latency
1. Latency
Within California?
Within Europe?
Across Atlantic?
US to Australia?
EMEA to Asia Pacific?
2. Response times of the application is different in various
geographical regions. The customer in US will usually have much
better performance then the one in Europe.
3. Use CDN for caching of static resource (akamai, cloudfront,
edgecast)
4. There are enterprise class solutions reducing latency (Verizon
Enterprise Solutions)
30 ms
30 ms
90 ms
210 ms
250 ms
42. WHY
REST API
Representational state transfer.
API is Application Programming Interface.
For API to make sense, it needs to be stable. Each service needs
an API policy.
Unless the REST API creates security risk, it can’t change without
a previous notice (deprecation period) when services can start
using a valid replacement or announce a end of life for a feature.
Unfortunately, errors are also API. Bad return codes can’t change
for instance.
API should be versioned. Don’t change current API, release a new one.
“Be liberal with what you accept, be consistent with what you
return”
Be precise with accepted and returned content-type.
43. WHY
GET method
rest/api/issue/ should return all issues?
NO. Collections should always be paginated. Returning everything is
never realistic in large systems.
rest/api/issue/ACJIRA-1 should return a details of a particular issue.
NOT all of them. Let user define as query parameter fields which
should be returned. You are loosing precious CPU cycles and
network bandwidth for returning everything.
rest/api/issue/ACJIRA-1 should return ETag
ETag header in response for GET:
“ETag: xyz”
Second request with header:
”If-None-Match: xyz”
304 when not modified, OK when changed with new ETag. Or not found.
44. WHY
HATEOS
rest/api/issue/ACJIRA-1/delete is not a valid GET usage.
Use HATEOAS (Hypertext As The Engine Of Application State)
{
"href": "rest/api/issue/ACJIRA-1",
"rel": "self",
"method": "GET"
},
{
"href": "rest/api/issue",
"rel": "all-paginated",
"method": "GET"
},
{
"href": "rest/api/issue",
"rel": "create",
"method": "POST"
}
{
"href": "rest/api/issue/ACJIRA-1",
"rel": "update",
"method": "PUT"
},
{
"href": "rest/api/issue/ACJIRA-1",
"rel": "delete",
"method": "DELETE"
},
{
"href": "rest/api/issue/ACJIRA-1",
"rel": “partial-update",
"method": "PATCH"
}
idempotent
idempotent
not idempotent
idempotent
idempotent
not idempotent
45. WHY
REST API security
Prefer the same mechanism as for UI authentication
Possible to use BasicAuth, OAuth, but only with SSL/TLS.
Always check permissions of the user.
Interesting problem to solve?
We have a project ACJIRA and user Filip who can’t access the
project. What return code shall he get?
It should be 404 (not found)
403 (forbidden) reveals that the project exists. Projects are often
named after the company name for which the service is provided.
Companies may disagree to publicly acknowledge relationship with
another company.
46. WHY
AaaS (API as a Service)
You don’t need to write all APIs yourself. You can integrate with
existing APIs.
APIs directories/marketplaces where you can buy APIs.
Be careful with passing the user data to external services.
48. HOW
How do I know about data change?
CI server doesn’t execute PUT request /issue/ACJIRA-27 build
completed. How would it know who is interested?
It publishes information that the build was completed, jira-build-monitor-service
registers a listener for this information.
49. HOW
Messaging
There are many approaches and concepts around messaging.
The key differentiator is message delivery guarantee.
It is easy to have 90% or 95% message delivery guarantee.
Assuring 100% message delivery is almost impossible. It may
require complete service rewrite.
It is very important to understand the use case to make a decision
what is the expected message delivery.
Send messages asynchronously. Connections are precious
resources for your service.
Messages are API as well. They should have a clear contract and
deprecation policy. Make them granular.
Specify the content type. Be careful with content-length, too long
may DOS the receiver.
Sign the request.
50. HOW
What can go wrong?
Server dies during a change.
Event sourcing - record each change in a database. If server died,
there is no change to message. Each change have a sequence
number.
Database trigger. Move the message to a queue. What if database
server dies?
Resend with a possible duplicate flag. Is the order preserved? Who
is controlling this? What if the controlling node of publisher dies?
Server died after change, before sending the message.
What if the message was not delivered?
Server died during processing the message?
Pull the message again with REST request to publisher. Parametrise
the request with last successfully processed message.
Use some Queue Service implementation acting as a proxy. Amazon
SQS for instance.
51. HOW
Eventually consistent
It costs a lot of money to provide
message guarantee (implement all the
steps from previous slide).
Most business applications can life
without reliable messaging for a while.
When running 52 000 servers or more (it
will always be more), you need to
acknowledge that things are going fail and
messages are not going to be delivered.
Apply resilient architecture, which polls for
data change (event sourcing again) if the
messages are not delivered.
53. HOW
How do I ensure I display proper data?
I want to display information about related pages owned only by this
customer.
I want to display information only about source code changes made by
organisation of my current customer.
54. HOW
Multi-tenancy
Ability of the single application to serve requests from multiple
customers at the same time.
When the application is written for the on-premises clients, it
doesn’t make sense to support multiple organisations.
When the application is written for the cloud, it doesn’t make
sense to host each customer separately.
Customers with a single office use JIRA 8h a day. It can serve
other customers for remaining 16h.
Single server can process 500 concurrent users. It can host 10
small companies.
The application should be written to run with 0-tenants and 1000-
tenants.
55. HOW
Multi-tenancy is difficult
We have data of Nike, NASA and Twitter. We can’t leak this data.
Tenant id is public.
Encrypted information about the tenant needs to be propagated
with each request.
When passing this information, it must be encrypted along
with a timestamp.
Tenant id must be unique and strong.
DON’TS: put the hostname, organisation name or any other
data to tenant id. This data will change.
We had an error:
https://ecosystem.atlassian.net/browse/AC-811
OpenID provider for all services.
57. HOW
How do I deploy this?
52 000 servers in multiple data centers.
Difference in
- os version (good if the os is the same)
- hardware
- database version
- schema version
You can’t update everything at the same time:
- no expected downtime
- data centers not optimised for 100% energy utilisation
- data centers not optimised for the heat.
Services updated independently:
- each team owns it own deployment schedule
- each team may maintain couple of versions of services
- experimental features may be enabled/disabled on some services
58. HOW
Fast Five - Quality at speed
Stage Behaviour Data Code Data
schema Activation Comment
1 Old Old Old Deployment Code is running as is.
2 Old
New and
old
together
Old Deployment New code deployment.
3 Old
New and
old
together
New
Deployment
or
Configuration
Database migration.
4
New and
old
together
New and
old
together
New
Deployment,
Configuration
or Context
Slowly enable the feature on all
racks. Features might be enabled
in various configurations.
5 New New New Deployment Delete the obsolete code.
59. HOW
DEV/DOG/PROD
Deployment never go to client first.
First versions are deployed to development environment.
Development environment is tested with production versions of
remaining services.
Good development versions are promoted to dogfood
environment. This version is used there internally against
production versions of other services.
Good dogfooding versions are promoted to production
environment. Futures are slowly enabled on production.
Possible issues:
- New service was not tested against all versions running in
production.
- Couple of new services deployed at the same time. They
were never tested together. Release manager should resolve
this issue and schedule the feature release.