Araport Workshop Tutorial 2: Authentication and the Agave Profiles Service.
A tutorial for building a science application using the Araport.org platform, specifically the Agave API's Profiles RESTful endpoints from the araport app generator platform.
MidwestPHP 2016 - Adventures in Laravel 5 Joe Ferguson
With the release of Laravel 5 there are a lot of new toys to play with. We'll cover the new features and how to start using them in your applications. We'll be covering the new directory structure, changes in blade templates, commands and events, form requests, helpers, route caching and middlewares, controller method injection, migrating from Laravel 4, and more! We will also discuss changes to Illuminate packages and the new Elixir, Socialite, and Contracts packages.
Handling RESTful API requests with Laravel PHP Framework resource controllers is already very easy. With Laravel 5, handling request routing has been made even easier by using a configuration-as-annotation approach. Controller annotations may take advantage of doc block-style syntax and then be compiled using Laravel's artisan command-line tool. I'll present this approach by providing a few examples and discussing some of the pros and cons.
MidwestPHP 2016 - Adventures in Laravel 5 Joe Ferguson
With the release of Laravel 5 there are a lot of new toys to play with. We'll cover the new features and how to start using them in your applications. We'll be covering the new directory structure, changes in blade templates, commands and events, form requests, helpers, route caching and middlewares, controller method injection, migrating from Laravel 4, and more! We will also discuss changes to Illuminate packages and the new Elixir, Socialite, and Contracts packages.
Handling RESTful API requests with Laravel PHP Framework resource controllers is already very easy. With Laravel 5, handling request routing has been made even easier by using a configuration-as-annotation approach. Controller annotations may take advantage of doc block-style syntax and then be compiled using Laravel's artisan command-line tool. I'll present this approach by providing a few examples and discussing some of the pros and cons.
Jab14 exemple of integration of Joomla and slim Framework
http://jandbeyond.org/program/sessions/dont-worry-be-api-best-practices-and-implementatio.html
In the context of a website or web application, an application-programming interface or API allows software developers to interact with and build upon the data and/or services delivered by your website. Thus, APIs provide limitless flexibility, reach and innovative potential for any website, service or application.
During the last few months, Pierre-André has performed extensive research and development to discover effective ways of adding an API to a Joomla website. In this interactive session, he will share his findings.
Attendees can expect to learn, why you need an API for your web site, the pros and cons of various API solutions, and why a RESTful API is a good fit for Joomla. Best practices for implementing a well-documented, pragmatic, and RESTful API will be discussed, along with useful tools and sample code for using the com_api component as well as Slim Framework.
Rails Antipatterns (http://www.amazon.com/Rails-AntiPatterns-Refactoring-Addison-Wesley-Professional/dp/0321604814) 를 읽고 몇 가지 정도만 요약을 해보았습니다.
레일즈를 시작한지 얼마 되지 않은터라 맞지 않는 부분이 있더라도 양해 부탁드려요 :)
An introduction to the API for OnTime for IBMontimesuite
Presentation from the OnTime for IBM API workshop in Shinjuku, Tokyo, Japan on Thursday 19 November 2015. Please contact OnTime support either in Denmark or Japan for more information.
Jab14 exemple of integration of Joomla and slim Framework
http://jandbeyond.org/program/sessions/dont-worry-be-api-best-practices-and-implementatio.html
In the context of a website or web application, an application-programming interface or API allows software developers to interact with and build upon the data and/or services delivered by your website. Thus, APIs provide limitless flexibility, reach and innovative potential for any website, service or application.
During the last few months, Pierre-André has performed extensive research and development to discover effective ways of adding an API to a Joomla website. In this interactive session, he will share his findings.
Attendees can expect to learn, why you need an API for your web site, the pros and cons of various API solutions, and why a RESTful API is a good fit for Joomla. Best practices for implementing a well-documented, pragmatic, and RESTful API will be discussed, along with useful tools and sample code for using the com_api component as well as Slim Framework.
Rails Antipatterns (http://www.amazon.com/Rails-AntiPatterns-Refactoring-Addison-Wesley-Professional/dp/0321604814) 를 읽고 몇 가지 정도만 요약을 해보았습니다.
레일즈를 시작한지 얼마 되지 않은터라 맞지 않는 부분이 있더라도 양해 부탁드려요 :)
An introduction to the API for OnTime for IBMontimesuite
Presentation from the OnTime for IBM API workshop in Shinjuku, Tokyo, Japan on Thursday 19 November 2015. Please contact OnTime support either in Denmark or Japan for more information.
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...Sencha
Using modern browsers, developers can now create web apps with capabilities that were only possible in native or hybrid apps. Web apps can now access hardware devices such as microphones, cameras, GPS, accelerometers, VR displays, and many others, without using any plugins. Using Web Bluetooth, web app developers can now communicate with nearly any type of hardware device. In this session, we’ll survey a sample of the W3C standards that give developers access to next-gen capabilities via web apps. Topics will include Service Worker, Push API, WebRTC, Web Bluetooth, Web Crypto, Web Speech, Web Notifications, and others.
These slides focus on documentation for REST APIs. See http://idratherbewriting.com for more detail. For the video recording, see http://youtu.be/0yfNd7tzH2Q. This deep dive is the second slide deck I used in the presentation.
Join us for an overview of REST, the Force.com REST API, and learn how to use that REST API with Swagger, a language-agnostic framework for describing, producing, consuming, and visualizing RESTful web services. You'll learn how Swagger can generate a Spring MVC Controller to consume the Force.com REST API, and keep client and documentation systems in sync with the server.
All Things Open 2014 - Day 2
Thursday, October 23rd, 2014
Carlos Souza
Developer/Instructor with Code School
Front Dev 1
Building Better Web APIs with Rails
Find more by Carlos here: https://speakerdeck.com/caike
How to build Simple yet powerful API.pptxChanna Ly
How to build simple yet powerful API from novice to professional. API for beginners, API for gurus, Enterprise level API, REST API, JWT API, Deep dive.
Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd Sencha
Learn how to use Ext JS and Cmd to deliver Progressive Web Applications to deliver the best of both web and mobile app experiences. Web apps can be found easily on the internet and every user is guaranteed access to the same and latest version of the application. Plus, mobile app capabilities, such as offline support and optimizing access to the underlying network using service workers, take the user experience to a whole new level.
The Tooling API provides powerful new ways to manage your code. It can help you measure code health, find circular dependencies, and identify code that's no longer in use. Join us to learn how to use the Tooling API to conduct a quality analysis of your code, and how to do this using an app integrated via Force.com Canvas -- no command line or desktop install required! Take your Apex knowledge to the next level.
This presentation is part of the Oracle Cloud Native Developer Hackathon 2020. It describes how to setup and configure a test account for deploying functions to the OCI cloud using the OCI CLI and fnproject cli.
進擊的 ASP.NET Web API 2 巨人 – 打造支援各種裝置及平台的服務
你/妳知道WebApi (REST)己經成為一個企業IT系統整合及網路服務成長最為快速的趨勢嗎? 你/妳知道現今在網路上最被Mobile device使所用的資料交換的格式是JSON (Javascript Object Notation)而不再是肥大擁腫的XML怪獸嗎?
全世界的網路大咖都拼命地開發WebApi的服務來吸引Mobile或Web application的開發者, 我們將在這堂課中結合AngularJs與ASP.NET Web API 2來讓大家開始感受WebApi的吸引力。
At Adobe APIs are powering the next generation of Creative applications.
Mesos makes it very easy and fun to deploy and run Robust and Scalable Microservices in the Cloud. Today's technologies offer simple solutions to create RESTfull services while Mesos brings them to life faster.
As the number of microservices increase and the inter communication between them becomes more complicated, we soon realize we have new questions awaiting our answers: how do microservices authenticate ? how do we monitor who's using the APIs they expose ? How do we protect them from attacks ? How do we set throttling and rate limiting rules across a cluster of microservices ? How do we control which service allows public access and which one we want to keep private ? How about Mesos APIs and its frameworks ? Can they benefit from these features as well ?
Come and learn a scalable architecture to manage microservices in Mesos by integrating an API Management layer inside your Mesos clusters. This presentation will show you what an API Management layer is, what it's composed of and how it can help you expose microservices in a secure,managed and highly-available way, even in multi-Mesos cluster setups.
During this session you will also have the opportunity to learn how Adobe's API Platform solved this problem, where it is today and what it envisions do to with Mesos further.
If you're working with microservices already or you're creating new ones then this presentation is for you. Come and learn how Mesos together with an API management layer will make you a microservices hero in your organisation. At Adobe APIs are powering the next generation of Creative applications.
Workshop KrakYourNet2016 - Web applications hacking Ruby on Rails example Anna Klepacka
Web Applications Hacking – Ruby on Rails example.
Attack web applications by using SQL attacks, CSRF, XSS. You will learn how to extract information by generating API json / xml and how to use cookies to code injection.
In the ever-evolving landscape of technology, enterprise software development is undergoing a significant transformation. Traditional coding methods are being challenged by innovative no-code solutions, which promise to streamline and democratize the software development process.
This shift is particularly impactful for enterprises, which require robust, scalable, and efficient software to manage their operations. In this article, we will explore the various facets of enterprise software development with no-code solutions, examining their benefits, challenges, and the future potential they hold.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
Navigating the Metaverse: A Journey into Virtual Evolution"Donna Lenk
Join us for an exploration of the Metaverse's evolution, where innovation meets imagination. Discover new dimensions of virtual events, engage with thought-provoking discussions, and witness the transformative power of digital realms."
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteGoogle
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-pilot-review/
AI Pilot Review: Key Features
✅Deploy AI expert bots in Any Niche With Just A Click
✅With one keyword, generate complete funnels, websites, landing pages, and more.
✅More than 85 AI features are included in the AI pilot.
✅No setup or configuration; use your voice (like Siri) to do whatever you want.
✅You Can Use AI Pilot To Create your version of AI Pilot And Charge People For It…
✅ZERO Manual Work With AI Pilot. Never write, Design, Or Code Again.
✅ZERO Limits On Features Or Usages
✅Use Our AI-powered Traffic To Get Hundreds Of Customers
✅No Complicated Setup: Get Up And Running In 2 Minutes
✅99.99% Up-Time Guaranteed
✅30 Days Money-Back Guarantee
✅ZERO Upfront Cost
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Developing Distributed High-performance Computing Capabilities of an Open Sci...Globus
COVID-19 had an unprecedented impact on scientific collaboration. The pandemic and its broad response from the scientific community has forged new relationships among public health practitioners, mathematical modelers, and scientific computing specialists, while revealing critical gaps in exploiting advanced computing systems to support urgent decision making. Informed by our team’s work in applying high-performance computing in support of public health decision makers during the COVID-19 pandemic, we present how Globus technologies are enabling the development of an open science platform for robust epidemic analysis, with the goal of collaborative, secure, distributed, on-demand, and fast time-to-solution analyses to support public health.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
Araport Workshop Tutorial 2: Authentication and the Agave Profiles Service
1. Araport Workshop Tutorial 2:
Authentication and the Profiles
araport.org
Service
Stephen Mock
Director, Advanced Computing Interfaces
Texas Advanced Computing Center
2. araport.org
this
• http://www.slideshare.net/stevemock/arap
ort-workshop-tutorial-2
3. araport.org
Overview
• Traditional Web Authentication
• OAuth v2
• Araport Client Registration
• Javascript Developer Console
• Building the “whoami” app
4. araport.org
Goal
• Build a client application to Araport’s web
service platform, Agave
• Have a working, authenticated web
application running on your computer
• Query the Agave “profiles” service for
information about your account and
display on the page and to the console
5. araport.org
Araport Architecture
CLI clients,
Scripts, 3rd party
applications
Agave Enterprise Service Bus
Agave Services
systems apps
jobs
Physical
resources
profile
meta
files
HPC | Files | DB
ADAMA
enroll
manage
a b c d e f
AIP & 3rd party data
providers
• Single-sign on
• Throttling
• Unified logging
• API versioning
• Automatic
HTTPS
API Mediators
• Simple proxy
• Mediator
• Aggregator
• Filter
REST-like
REST*
SOAP
POX
Cambrian CGI
6. Traditional Web Authentication
• Browser sends username/password to
server
• Server verifies username/password and
sends cookie back to browser
• Browser sends cookie along with every
request
• Server decodes the cookie to determine
authentication status
araport.org
7. araport.org
Traditional Cookie Auth
CS
S
DB
Login Form
HTML
CGI
Store
Cookie
Server
Browser
HTTP
Username
Password Cookie
All Further
Requests
Cookie
8. araport.org
OAuth 2.0
• Sounds scary, but you use it all the time
• “Sign in/Register using your
Twitter/Google/Facebook/Github/Microsoft
account”
• Trusted 3rd party for identity information,
authorization, and authentication
Skype
Code.org
9. araport.org
What is a Client
• What is an OAuth Client?
– Any software that consumes the Agave web
services
• Command line
• Curl
• Scripts
• Web applications
• Desktop Applications
• Javascript
• Araport.org
10. araport.org
Simplified OAuth 2.0 Flow
Araport.org,
CLI clients,
Scripts,
3rd party applications
Agave Web Services
Clients
Registration
Service
1) Register Client:
• Send client “name”
• Send
username/password
• Receive Client
Credentials
2) Authenticate:
• “Login”
• Send client credentials
and username
password
• Receive access token
3) Get Profile
info:
• Send client
credentials
• Send access
token
• Receive profile
info
Token Service Profiles Service
11. araport.org
Araport Clients
• We’re building clients to the Agave API
• Authentication is to the Agave API not to
the Araport.org website
• Client Registration
– All clients to the Agave API must register
– For the development of your application
– Araport.org is a client to the API as well!
12. araport.org
Open Your App
• First, check in tutorial 1 code (if you
haven’t already)
– git add .
– git commit –a
• Check out code for tutorial 2
– git checkout tutorial/2
• grunt
• Opens browser to localhost:9000
14. Browser Javascript Developer
araport.org
Console
• In Chrome
– Command – Option – J (Mac)
– Control – Shift – J (Linux / Windows)
– Or View -> Developer -> Javascript Console
– You should see: “Hello, workshop tutorial!“
• “console.log(object)” from Javascript prints
information to the console
– console.log(‘string’,object) if you want to output a
string and an object like console.log(‘Success!’,
successObject)
• More info: https://developer.mozilla.org/en-
US/docs/Web/API/Console.log
15. araport.org
Developer Console
• Agave documentation built into the
browser! (Chrome, Safari, Firefox)
• Type into console:
– Agave.api.help();
• Notice all of the different endpoints
– Agave.api.biscuit();
– Agave.api.profiles.help();
• Which do you think returns your profile?
16. araport.org
Whoami App
• Let’s build a “Hello world” type app!
• Modify app/scripts/app.js and
app/app.html to call Agave API to get your
profile information and print it:
1. To the Javascript console
2. On the page
17. Agave.api Calls in Javascript
araport.org
• Agave.api.*
Agave.api.endpoint(
{ inputObject }, //input to the call, or null
successCallbackFunction(response){
//runs if the Agave call is successful
//still could make the call to Agave,
//but return an error or other failure!
},
failureCallbackFunction(err) {
//runs if the Agave call fails to return
}
);
18. Agave.profiles.me Call in Javascript
araport.org
var successFunction = function(response) {
//do success stuff!
console.log(‘Success! ‘, response);
};
var failFunction = function(err) {
//do failure stuff!
console.log(‘Failure! ‘, err);
};
Agave.api.profiles.me(
null, //no input needed here
successFunction,
failFunction
);
19. araport.org
STEP 1:
• Delete code tutorial 1 code from app/scripts/app.js
– Delete:
• From: “//STEP 1: Beginning of STEP 1 code. Delete from here
to "STEP 1: DELETE TO HERE " below//”
• To: “//STEP 1: DELETE TO HERE //”
• Uncomment STEP 1: code in app/scripts/app.js
– Delete the 2 lines that say:
• “/**** To uncomment for STEP 1 delete this entire line ********”
• “*** To uncomment for STEP 1 delete this entire line ********/”
• Save the file app/scripts/app.js to reload the app
• See response object printed to console
• Browse the response object in console
21. araport.org
Response object
• The object returned to the success callbacks from the
Agave.api calls
• You can call it anything you want, resp (for short) or
biscuits if you wanted
• Important (to this workshop) properties:
– data: raw string data
– obj: { JSON representation of data } //more in next slide
– status: the http code of the call
• http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
• 2xx – Success codes! You want these!
• 3xx – Redirect codes, typically ok.
• 4xx – Client errors. Your code probably sent the wrong
request/info!
• 5xx – Server errors. The server had an error!
22. araport.org
results.obj
• If returned data is JSON, it gets stuffed into results.obj
– message: a human readable message
– result: { the information you requested }
• From Agave.api.profiles.me()
– create_time: "20140812212443Z”
– email: mock@tacc.utexas.edu
– first_name: ”Stephen”
– full_name: ”Stehen Mock”
– last_name: ”Mock”
– mobile_phone: "”
– phone: "”
– status: "Active”
– username: "mock"
– status: “success or failure”
• Check this for ‘success’
23. araport.org
In Javascript:
Check status, Print username
var successFunction = function(response) {
//do success stuff!
console.log(response); //everything!
if(response.obj.status !== 'success') {
console.log('There was a problem: ' +
response.obj.message);
} else {
console.log('Success! Welcome, ',
response.obj.result.username);
}
};
24. araport.org
STEP 2
• Delete STEP 1 code from
app/scripts/app.js
• Uncomment STEP 2 code from
app/scripts/app.js
• Note:
– Checking the response.obj.status for
‘success’
– Printing the username to the console via
response.obj.result.username
26. araport.org
Putting It On The Page
• var appContext = $('[data-app-name="
workshop-tutorial"]');
– Use this to find/modify any elements in the page so
that you don’t clobber other apps when it’s
published to Araport.org
– For example:
• $('.profile-name', appContext).text(profile.username);
• var vcard = $('.vcard', appContext);
27. araport.org
Step 3:
Let’s Put It on the Page
• Delete STEP 1 and 2 code in BOTH
– app/app.html
– app/scripts/app.js
• Uncomment STEP 3 code in BOTH
– app/app.html
– app/scripts/app.js
• Save both files to reload
• Note:
– More profile information pushed to console
– Vcard (profile info) displayed on the page
28. araport.org
Conclusion
• Learned a bit about OAuth v2
• Got a glimpse into the Agave API
• Built an app in several steps that queries
Agave for profile information and displays
that information in the console and on a
page
29. Chris Nelson
Project
Manager
araport.org
Chris Town, PI
Lisa McDonald
Education and
Outreach
Coordinator
Jason Miller, Co-PI
JCVI Technical Lead
Vivek Krishnakumar
Bioinf. Engineer
Erik Ferlanti
Software Engineer
Svetlana Karamycheva
Bioinf Engineer
Gos Micklem, co-PI Sergio Contrino
Eva Huala
Project lead, TAIR
Software Engineer
Bob Muller
Technical lead, TAIR
Matt Vaughn
co-PI
Steve Mock
Portal Engineer
Rion Dooley,
API Engineer
Matt Hanlon,
Portal Engineer
Maria Kim
Bioinf Engineer
Ben Rosen
Bioinf
Analyst
Joe Stubbs,
API
Engineer
Walter Moreira,
API Engineer
3 arguments to most of the API calls:
Input object
Success callback function
Failure callback function
first thing you'll do is blow away the API docs anyway from your generated app.
Probably not necessary to check the error codes because the Agave api takes care of that.
But it’s not a bad idea to check the http codes as well eventually for completeness.
We’re glossing over that a little bit here to make the code more readable.
An expanded “successFunction” showing:
-checking the response.obj.status for success
-printing out the username via response.obj.result.username