SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Evolution of the Bullhorn REST API
Craig Kapp, Amrutha Rajiv
Bullhorn
Amrutha Rajiv
Principal Software
Architect
Craig Kapp
Principal Software
Architect
Topics
• Auth process
• REST API Basics
• Bullhorn One enhancements
• Taurus - javascript REST sdk for the front end
• Custom Cards
Auth Process
Auth Process
Step 1 - get the authentication code
URL: https://auth.bullhornstaffing.com/oauth/authorize
Method:Post
Payload:
client_id={client_id}
response_type=code
state={recommended state value}
Response: code
username={username}
password={password}
action=Login
Auth Process
Step 2 - get the access_token
URL: https://auth.bullhornstaffing.com/oauth/token
Method:Post
Payload:
client_id={client_id}
client_secret={client_secret}
Response: access_token
grant_type={authorization_code}
code={auth_code}
Auth Process
Step 3 - get the rest token
URL: https://rest.bullhornstaffing.com/rest-
services/login
&Method:Post
Payload:
version=*
access_token={xxxxxxxx}
Response:
BhRestToken, restUrl
Easier Auth with Customizations
• Skip step 1, get authCode directly from the
customization
– Custom Card
– Custom Tab
– Custom Action
• Get access_token followed by BhRestToken
REST API Basics
Important Links
• Top Level REST URL
– https://rest.bullhornstaffing.com/rest-services
• Rest SDK (Java) - Software Development Kit
– https://github.com/bullhorn/sdk-rest
• Documentation
– http://bullhorn.github.io/docs/
• Postman collection
– https://documenter.getpostman.com/view/1437253/S1TZxadJ
Meta
• What entities are available?
– /meta
• What properties do those entities have?
– /meta/Candidate?field=*
Entity
• GET - Read
• PUT - Create
• POST - Update
• DELETE - Delete
Search and Query
• /search/Candidate
• /query/Tearsheet
Bullhorn One Enhancements
Time Entry Workflow
New Entities
• Billable Charge
• Payable Charge
• Invoice Statement
• Invoice Statement Line Item
Effective Dated Entities
• Location
• Invoice Term
• Billing Profile
Using EDEs
• Add new root
• Add new version
• Update version
• GET with effectiveOn date
Taurus - javascript REST sdk for the
front end
Taurus Capabilities
• Auto caching
• Reactive API
• Easy query construction syntax
• Front-end Only
https://github.com/bullhorn/taurus
Taurus examples
Retrieve Meta
Retrieving List Data
Filter Query Syntax
billingClientContact.name = ‘First Last’
jobOrder.clientContact.name = ‘First
Last’
Range Queries
For Search endpoint: currency: [120 TO
10000]
For query endpoint: currency > 120 AND
currency < 10000
• Deals with event streams
• A sequence of events that happen over
time
• Whenever an event occurs, we react to it
by doing something.
Reactive Programming
RXJS & Observables
• An observer subscribes to an Observable.
• Observer reacts to whatever item or
sequence of items the Observable emits.
• Concurrent operations - non blocking
Source: http://reactivex.io
bullhorn-types
Typing in line with meta
Example:
export interface MessageTemplate {
id?: number;
dateAdded?: Date;
isPublic?: boolean;
messageText?: Strings;
name?: Strings;
owner?: CorporateUser;
templateType?: Strings;
}
Custom Cards
Configuring Custom Cards/Tabs
Custom Card DemoDemo: Invoices to Watch
Card
Resources
• Taurus: https://github.com/bullhorn/taurus
• Bullhorn-types:
https://github.com/bullhorn/bullhorn-types
• Novo-elements:
https://github.com/bullhorn/novo-elements
• Custom Tab and authCode:
http://bullhorn.github.io/REST-Backed-
Custom-Components/
Recap
• Auth simplified
• SDKs make life easier
• New Bullhorn One entities
• EDEs respect effectiveOn
• Taurus & bullhorn-types make your life easier
Questions?

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20
Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20
Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20
 
Leveraging APIs from SharePoint Framework solutions
Leveraging APIs from SharePoint Framework solutionsLeveraging APIs from SharePoint Framework solutions
Leveraging APIs from SharePoint Framework solutions
 
Open stack ocata summit enabling aws lambda-like functionality with openstac...
Open stack ocata summit  enabling aws lambda-like functionality with openstac...Open stack ocata summit  enabling aws lambda-like functionality with openstac...
Open stack ocata summit enabling aws lambda-like functionality with openstac...
 
Advance java session 8
Advance java session 8Advance java session 8
Advance java session 8
 
Leveraging the Security of AWS's Own APIs for Your App - AWS Serverless Web Day
Leveraging the Security of AWS's Own APIs for Your App - AWS Serverless Web DayLeveraging the Security of AWS's Own APIs for Your App - AWS Serverless Web Day
Leveraging the Security of AWS's Own APIs for Your App - AWS Serverless Web Day
 
Securing Serverless Architectures - AWS Serverless Web Day
Securing Serverless Architectures - AWS Serverless Web DaySecuring Serverless Architectures - AWS Serverless Web Day
Securing Serverless Architectures - AWS Serverless Web Day
 
Amazon Connect를 이용한 장애 대응도구 개발기
Amazon Connect를 이용한 장애 대응도구 개발기Amazon Connect를 이용한 장애 대응도구 개발기
Amazon Connect를 이용한 장애 대응도구 개발기
 
Azure Durable Functions
Azure Durable FunctionsAzure Durable Functions
Azure Durable Functions
 
AWS Lambda from the trenches (Serverless London)
AWS Lambda from the trenches (Serverless London)AWS Lambda from the trenches (Serverless London)
AWS Lambda from the trenches (Serverless London)
 
Azure Container Apps
Azure Container AppsAzure Container Apps
Azure Container Apps
 
What's new in c# 8.0
What's new in c# 8.0What's new in c# 8.0
What's new in c# 8.0
 
Altitude SF 2017: Fastly GSLB: Scaling your microservice and multi-cloud envi...
Altitude SF 2017: Fastly GSLB: Scaling your microservice and multi-cloud envi...Altitude SF 2017: Fastly GSLB: Scaling your microservice and multi-cloud envi...
Altitude SF 2017: Fastly GSLB: Scaling your microservice and multi-cloud envi...
 
ECS19 - Laura Kokkarinen - Introduction to Microsoft Graph
ECS19 - Laura Kokkarinen - Introduction to Microsoft GraphECS19 - Laura Kokkarinen - Introduction to Microsoft Graph
ECS19 - Laura Kokkarinen - Introduction to Microsoft Graph
 
Getting Started With Angular
Getting Started With AngularGetting Started With Angular
Getting Started With Angular
 
Enabling Machine Learning with Apache Flink - Sherin Thomas, Lyft
Enabling Machine Learning with Apache Flink - Sherin Thomas, LyftEnabling Machine Learning with Apache Flink - Sherin Thomas, Lyft
Enabling Machine Learning with Apache Flink - Sherin Thomas, Lyft
 
Docker and java
Docker and javaDocker and java
Docker and java
 
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
 
Javantura v4 - (Spring)Boot your application on Red Hat middleware stack - Al...
Javantura v4 - (Spring)Boot your application on Red Hat middleware stack - Al...Javantura v4 - (Spring)Boot your application on Red Hat middleware stack - Al...
Javantura v4 - (Spring)Boot your application on Red Hat middleware stack - Al...
 
SPSBE 2014 Content Enrichment in SharePoint Search
SPSBE 2014 Content Enrichment in SharePoint SearchSPSBE 2014 Content Enrichment in SharePoint Search
SPSBE 2014 Content Enrichment in SharePoint Search
 
Amazon ECS Deep Dive
Amazon ECS Deep DiveAmazon ECS Deep Dive
Amazon ECS Deep Dive
 

Ähnlich wie Evolution of the REST API

Ruby HTTP clients comparison
Ruby HTTP clients comparisonRuby HTTP clients comparison
Ruby HTTP clients comparison
Hiroshi Nakamura
 
Behind the scenes of Scaleway Functions : when Kubernetes meets our products
Behind the scenes of Scaleway Functions : when Kubernetes meets our productsBehind the scenes of Scaleway Functions : when Kubernetes meets our products
Behind the scenes of Scaleway Functions : when Kubernetes meets our products
Scaleway
 
How Netflix Is Solving Authorization Across Their Cloud
How Netflix Is Solving Authorization Across Their CloudHow Netflix Is Solving Authorization Across Their Cloud
How Netflix Is Solving Authorization Across Their Cloud
Torin Sandall
 

Ähnlich wie Evolution of the REST API (20)

Amazon Web Service - Basics
Amazon Web Service - BasicsAmazon Web Service - Basics
Amazon Web Service - Basics
 
(DEV203) Amazon API Gateway & AWS Lambda to Build Secure APIs
(DEV203) Amazon API Gateway & AWS Lambda to Build Secure APIs(DEV203) Amazon API Gateway & AWS Lambda to Build Secure APIs
(DEV203) Amazon API Gateway & AWS Lambda to Build Secure APIs
 
Workshop: We love APIs
Workshop: We love APIsWorkshop: We love APIs
Workshop: We love APIs
 
Ruby HTTP clients comparison
Ruby HTTP clients comparisonRuby HTTP clients comparison
Ruby HTTP clients comparison
 
Externalizing Authorization in Micro Services world
Externalizing Authorization in Micro Services worldExternalizing Authorization in Micro Services world
Externalizing Authorization in Micro Services world
 
Nordic APIs - Automatic Testing of (RESTful) API Documentation
Nordic APIs - Automatic Testing of (RESTful) API DocumentationNordic APIs - Automatic Testing of (RESTful) API Documentation
Nordic APIs - Automatic Testing of (RESTful) API Documentation
 
Deploying your static web app to the Cloud
Deploying your static web app to the CloudDeploying your static web app to the Cloud
Deploying your static web app to the Cloud
 
Orion Context Broker
Orion Context Broker Orion Context Broker
Orion Context Broker
 
What the Heck is OAuth and OIDC - UberConf 2018
What the Heck is OAuth and OIDC - UberConf 2018What the Heck is OAuth and OIDC - UberConf 2018
What the Heck is OAuth and OIDC - UberConf 2018
 
Event-Based API Patterns and Practices
Event-Based API Patterns and PracticesEvent-Based API Patterns and Practices
Event-Based API Patterns and Practices
 
Behind the scenes of Scaleway Functions : when Kubernetes meets our products
Behind the scenes of Scaleway Functions : when Kubernetes meets our productsBehind the scenes of Scaleway Functions : when Kubernetes meets our products
Behind the scenes of Scaleway Functions : when Kubernetes meets our products
 
Spring Web Services: SOAP vs. REST
Spring Web Services: SOAP vs. RESTSpring Web Services: SOAP vs. REST
Spring Web Services: SOAP vs. REST
 
How Netflix Is Solving Authorization Across Their Cloud
How Netflix Is Solving Authorization Across Their CloudHow Netflix Is Solving Authorization Across Their Cloud
How Netflix Is Solving Authorization Across Their Cloud
 
Spring MVC to iOS and the REST
Spring MVC to iOS and the RESTSpring MVC to iOS and the REST
Spring MVC to iOS and the REST
 
API Days Paris - Automatic Testing of (RESTful) API Documentation
API Days Paris - Automatic Testing of (RESTful) API DocumentationAPI Days Paris - Automatic Testing of (RESTful) API Documentation
API Days Paris - Automatic Testing of (RESTful) API Documentation
 
Spring Cloud: API gateway upgrade & configuration in the cloud
Spring Cloud: API gateway upgrade & configuration in the cloudSpring Cloud: API gateway upgrade & configuration in the cloud
Spring Cloud: API gateway upgrade & configuration in the cloud
 
Intro to Node
Intro to NodeIntro to Node
Intro to Node
 
Exposing Salesforce REST Services Using Swagger
Exposing Salesforce REST Services Using SwaggerExposing Salesforce REST Services Using Swagger
Exposing Salesforce REST Services Using Swagger
 
Ntu workshop : REST, PayPal APIs & Async
Ntu workshop : REST, PayPal APIs & AsyncNtu workshop : REST, PayPal APIs & Async
Ntu workshop : REST, PayPal APIs & Async
 
Understanding Identity in the World of Web APIs – Ronnie Mitra, API Architec...
Understanding Identity in the World of Web APIs – Ronnie Mitra,  API Architec...Understanding Identity in the World of Web APIs – Ronnie Mitra,  API Architec...
Understanding Identity in the World of Web APIs – Ronnie Mitra, API Architec...
 

Mehr von JeremyOtt5

Mehr von JeremyOtt5 (17)

Start to Finish: Bullhorn One and its Benefits for Staffing
Start to Finish: Bullhorn One and its Benefits for StaffingStart to Finish: Bullhorn One and its Benefits for Staffing
Start to Finish: Bullhorn One and its Benefits for Staffing
 
Moving to the Lightning Experience: An Action Plan
Moving to the Lightning Experience: An Action PlanMoving to the Lightning Experience: An Action Plan
Moving to the Lightning Experience: An Action Plan
 
The Latest and Greatest: Updates to Bullhorn for Salesforce
The Latest and Greatest: Updates to Bullhorn for SalesforceThe Latest and Greatest: Updates to Bullhorn for Salesforce
The Latest and Greatest: Updates to Bullhorn for Salesforce
 
The Business Case for Social Innovation from Market Leaders
The Business Case for Social Innovation from Market LeadersThe Business Case for Social Innovation from Market Leaders
The Business Case for Social Innovation from Market Leaders
 
Practical Applications of AI: Real World Examples
Practical Applications of AI: Real World ExamplesPractical Applications of AI: Real World Examples
Practical Applications of AI: Real World Examples
 
Onboarding Revisited: Understanding the Latest Release
Onboarding Revisited: Understanding the Latest ReleaseOnboarding Revisited: Understanding the Latest Release
Onboarding Revisited: Understanding the Latest Release
 
Navigating the Changing Staffing Industry Landscape: Threats and Opportunities
Navigating the Changing Staffing Industry Landscape:  Threats and OpportunitiesNavigating the Changing Staffing Industry Landscape:  Threats and Opportunities
Navigating the Changing Staffing Industry Landscape: Threats and Opportunities
 
Make Your Data Work For You
Make Your Data Work For YouMake Your Data Work For You
Make Your Data Work For You
 
Invenias Update: Roadmap and Vision
Invenias Update: Roadmap and VisionInvenias Update: Roadmap and Vision
Invenias Update: Roadmap and Vision
 
Introducing the Bullhorn Onboarding API
Introducing the Bullhorn Onboarding APIIntroducing the Bullhorn Onboarding API
Introducing the Bullhorn Onboarding API
 
How to Get the Best MoBull Experience
How to Get the Best MoBull ExperienceHow to Get the Best MoBull Experience
How to Get the Best MoBull Experience
 
Extending Your Reach with Career Portal and Search Engine Optimization
Extending Your Reach with Career Portal and Search Engine OptimizationExtending Your Reach with Career Portal and Search Engine Optimization
Extending Your Reach with Career Portal and Search Engine Optimization
 
Digital Transformation Through Change Management: Overcoming Fear and Risk
Digital Transformation Through Change Management: Overcoming Fear and RiskDigital Transformation Through Change Management: Overcoming Fear and Risk
Digital Transformation Through Change Management: Overcoming Fear and Risk
 
Beyond Lip Service: Turning Culture into a Business Driver
Beyond Lip Service: Turning Culture into a Business DriverBeyond Lip Service: Turning Culture into a Business Driver
Beyond Lip Service: Turning Culture into a Business Driver
 
Automating Workflows Through Bullhorn and Partners
Automating Workflows Through Bullhorn and PartnersAutomating Workflows Through Bullhorn and Partners
Automating Workflows Through Bullhorn and Partners
 
Automated Data Synchronization: Data Loader, Data Mirror & Beyond
Automated Data Synchronization: Data Loader, Data Mirror & BeyondAutomated Data Synchronization: Data Loader, Data Mirror & Beyond
Automated Data Synchronization: Data Loader, Data Mirror & Beyond
 
API Developer Training: Insights for Integrations
API Developer Training: Insights for IntegrationsAPI Developer Training: Insights for Integrations
API Developer Training: Insights for Integrations
 

Kürzlich hochgeladen

100%Safe delivery(+971558539980)Abortion pills for sale..dubai sharjah, abu d...
100%Safe delivery(+971558539980)Abortion pills for sale..dubai sharjah, abu d...100%Safe delivery(+971558539980)Abortion pills for sale..dubai sharjah, abu d...
100%Safe delivery(+971558539980)Abortion pills for sale..dubai sharjah, abu d...
hyt3577
 

Kürzlich hochgeladen (6)

RecruZone - Your Recruiting Bounty marketplace
RecruZone - Your Recruiting Bounty marketplaceRecruZone - Your Recruiting Bounty marketplace
RecruZone - Your Recruiting Bounty marketplace
 
Will Robots Steal Your Jobs? Will Robots Steal Your Jobs? 10 Eye-Opening Work...
Will Robots Steal Your Jobs? Will Robots Steal Your Jobs? 10 Eye-Opening Work...Will Robots Steal Your Jobs? Will Robots Steal Your Jobs? 10 Eye-Opening Work...
Will Robots Steal Your Jobs? Will Robots Steal Your Jobs? 10 Eye-Opening Work...
 
2k Shots ≽ 9205541914 ≼ Call Girls In Ganesh Nagar (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Ganesh Nagar (Delhi)2k Shots ≽ 9205541914 ≼ Call Girls In Ganesh Nagar (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Ganesh Nagar (Delhi)
 
Webinar - How to set pay ranges in the context of pay transparency legislation
Webinar - How to set pay ranges in the context of pay transparency legislationWebinar - How to set pay ranges in the context of pay transparency legislation
Webinar - How to set pay ranges in the context of pay transparency legislation
 
100%Safe delivery(+971558539980)Abortion pills for sale..dubai sharjah, abu d...
100%Safe delivery(+971558539980)Abortion pills for sale..dubai sharjah, abu d...100%Safe delivery(+971558539980)Abortion pills for sale..dubai sharjah, abu d...
100%Safe delivery(+971558539980)Abortion pills for sale..dubai sharjah, abu d...
 
2k Shots ≽ 9205541914 ≼ Call Girls In Vinod Nagar East (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Vinod Nagar East (Delhi)2k Shots ≽ 9205541914 ≼ Call Girls In Vinod Nagar East (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Vinod Nagar East (Delhi)
 

Evolution of the REST API