API Lifecycle Patterns and Practices

undefined
 
API Lifecycle Patterns and
Practices
 
JEREMY TAYLOR
SR APPLICATIONS DEVELOPER
 
ANDRE NEWSOM
IT MANAGER
 
6/29/2023
 
NSC-614-5388 06/2023 Unclassified Unlimited Release
undefined
 
2
 
AGENDA : 
COOL STUFF THEN
COOLER STUFF
 
UUR – NSC-614-5388 06/2023 Unclassified Unlimited Release
 
AGENDA
 
INTRODUCTION
WHAT IS AN API
GOLD STANDARD API
Q&A
 
3
 
UUR – NSC-614-5388 06/2023 Unclassified Unlimited Release
 
ABOUT ME
 
Camping and fishing
Pets
The end
 
4
 
UUR – NSC-614-5388 06/2023 Unclassified Unlimited Release
undefined
 
5
 
SO WHAT IS A MULESOFT API
 
UUR – NSC-614-5388 06/2023 Unclassified Unlimited Release
 
BEFORE MULESOFT REST APIS
 
Each developer group making their own APIs
Each having their own standard
Duplicate efforts calling same services
 
6
 
UUR – NSC-614-5388 06/2023 Unclassified Unlimited Release
 
MULESOFT APIS
 
Full life cycle API platform
Design, Implement, Manage
SAPI, PAPI, EAPI
Clean connections
 
7
 
UUR – NSC-614-5388 06/2023 Unclassified Unlimited Release
 
MULESOFT APIS VS OTHER APIS
 
Full lifecycle of the API
Design (API Specification)
Implementation
C4E
Common connectors (HTTP)
Tons of pre-built connectors
SAP
O365
Jira
LDAP
Mail
And many more
 
8
 
UUR – NSC-614-5388 06/2023 Unclassified Unlimited Release
undefined
 
9
 
LEPRECHAUN MAGIC AND THE
GOLD STANDARD API
 
UUR – NSC-614-5388 06/2023 Unclassified Unlimited Release
 
What does Gold Standard mean?
 
Starter API Template
Standard Endpoints
Common Resource Libraries
Parent POM
Standardized Logging
Common SQL
Common DataWeave
CI/CD
Munit Testing*
Postman Testing*
 
10
 
UUR – NSC-614-5388 06/2023 Unclassified Unlimited Release
 
STARTER API TEMPLATE
 
Lower developer startup time
Includes standardized naming conventions (flows and components)
Create a custom GitLab Template
Clear out starter related configurations
Clone project to desktop and checkout new branch
Import into Anypoint Studio
Update pom and log4j2 files with correct project name
 
11
 
UUR – NSC-614-5388 06/2023 Unclassified Unlimited Release
 
STANDARDS ENDPOINTS
 
Health Check
Return status based on dependencies
Ping
Quick call returns standard json
Allows for automated alerts
 
12
 
UUR – NSC-614-5388 06/2023 Unclassified Unlimited Release
 
COMMON RESOURCE LIBRARIES
 
Common Libraries for All APIs (raml library)
Standard Error Responses
Standard Pagination, Sort, and Filter query Parameter definitions
Standard Health-Check Responses
Domain Specific Resources
erp-resources, mes-resources, ldap-resources
Standard Field and Object Data Schemas for many domain entities (Common Data Models)
 
13
 
UUR – NSC-614-5388 06/2023 Unclassified Unlimited Release
 
PARENT POM
 
Providing standardization
Significantly reducing startup time & difficulty for new apps
 
14
 
UUR – NSC-614-5388 06/2023 Unclassified Unlimited Release
 
JSON LOGGER
 
Trace points
Priority
INFO
DEBUG
ERROR
TRACE
WARN
Category
Easy to override in PCE
Logs debug in that flow
Log file vs Common Logger
Aggregation
Duration in the final log
Easier to find issues in the logs
 
15
 
UUR – NSC-614-5388 06/2023 Unclassified Unlimited Release
 
COMMON SQL & COMMON DATAWEAVE
 
Use OData like syntax to create dynamic
parameterized SQL queries
Prevents SQL injection
Used on the system API level
Allows the use of RAML specifications vs
OData APIkit
New Tools
VS Code Dataweave Extension
Reuse Mappers, Functions, Transformations
Dependency in pom.xml
 
16
 
UUR – NSC-614-5388 06/2023 Unclassified Unlimited Release
 
GITLAB CI/CD
 
Common templates
API Build/Deploy
Custom Policy Build/Deploy
Custom Module Build/Deploy
Maven Release
Tags
Packages and Registries
Code Coverage Report
Increase confidence of deployments
 
17
 
UUR – NSC-614-5388 06/2023 Unclassified Unlimited Release
 
FUTURE CONSIDERATIONS
 
Munit Testing
Adds confidence to APIs
Easy to use and create test cases
Able to show coverage report in GitLab
Postman Testing
Developers create examples
Save to a GitLab repository
Saves time
Self documenting
Developer should already be using postman for development
Promotes collaboration
Use
Environments
Collections
 
 
18
 
UUR – NSC-614-5388 06/2023 Unclassified Unlimited Release
 
Q&A
 
Andre Newsom – 
anewsom@kcnsc.doe.gov
Jeremy Taylor – 
jtaylor@kcnsc.doe.gov
 
19
 
UUR – NSC-614-5388 06/2023 Unclassified Unlimited Release
Slide Note
Embed
Share

This document explores the significance of MuleSoft APIs in streamlining the API lifecycle process, providing insights into best practices, standards, and comparisons with other APIs. Topics include the transition from individual developer APIs to MuleSoft's comprehensive platform, clean API connections, and the advantages of MuleSoft's design and implementation features.


Uploaded on May 13, 2024 | 3 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. 6/29/2023 API Lifecycle Patterns and Practices JEREMY TAYLOR SR APPLICATIONS DEVELOPER ANDRE NEWSOM IT MANAGER The Department of Energy s Kansas City National Security Campus is managed and operated by Honeywell Federal Manufacturing & Technologies, LLC under contract number DE-NA0002839 NSC-614-5388 06/2023 Unclassified Unlimited Release

  2. AGENDA : COOL STUFF THEN COOLER STUFF 2 UUR NSC-614-5388 06/2023 Unclassified Unlimited Release

  3. AGENDA INTRODUCTION WHAT IS AN API GOLD STANDARD API Q&A UUR NSC-614-5388 06/2023 Unclassified Unlimited Release 3

  4. ABOUT ME Camping and fishing Pets The end UUR NSC-614-5388 06/2023 Unclassified Unlimited Release 4

  5. SO WHAT IS A MULESOFT API 5 UUR NSC-614-5388 06/2023 Unclassified Unlimited Release

  6. BEFORE MULESOFT REST APIS Each developer group making their own APIs Each having their own standard Duplicate efforts calling same services UUR NSC-614-5388 06/2023 Unclassified Unlimited Release 6

  7. MULESOFT APIS Full life cycle API platform Design, Implement, Manage SAPI, PAPI, EAPI Clean connections UUR NSC-614-5388 06/2023 Unclassified Unlimited Release 7

  8. MULESOFT APIS VS OTHER APIS Full lifecycle of the API Design (API Specification) Implementation C4E Common connectors (HTTP) Tons of pre-built connectors SAP O365 Jira LDAP Mail And many more UUR NSC-614-5388 06/2023 Unclassified Unlimited Release 8

  9. LEPRECHAUN MAGIC AND THE GOLD STANDARD API 9 UUR NSC-614-5388 06/2023 Unclassified Unlimited Release

  10. What does Gold Standard mean? Starter API Template Standard Endpoints Common Resource Libraries Parent POM Standardized Logging Common SQL Common DataWeave CI/CD Munit Testing* Postman Testing* UUR NSC-614-5388 06/2023 Unclassified Unlimited Release 10

  11. STARTER API TEMPLATE Lower developer startup time Includes standardized naming conventions (flows and components) Create a custom GitLab Template Clear out starter related configurations Clone project to desktop and checkout new branch Import into Anypoint Studio Update pom and log4j2 files with correct project name UUR NSC-614-5388 06/2023 Unclassified Unlimited Release 11

  12. STANDARDS ENDPOINTS Health Check Return status based on dependencies Ping Quick call returns standard json Allows for automated alerts UUR NSC-614-5388 06/2023 Unclassified Unlimited Release 12

  13. COMMON RESOURCE LIBRARIES Common Libraries for All APIs (raml library) Standard Error Responses Standard Pagination, Sort, and Filter query Parameter definitions Standard Health-Check Responses Domain Specific Resources erp-resources, mes-resources, ldap-resources Standard Field and Object Data Schemas for many domain entities (Common Data Models) UUR NSC-614-5388 06/2023 Unclassified Unlimited Release 13

  14. PARENT POM Providing standardization Significantly reducing startup time & difficulty for new apps UUR NSC-614-5388 06/2023 Unclassified Unlimited Release 14

  15. JSON LOGGER Trace points Priority INFO DEBUG ERROR TRACE WARN Category Easy to override in PCE Logs debug in that flow Log file vs Common Logger Aggregation Duration in the final log Easier to find issues in the logs UUR NSC-614-5388 06/2023 Unclassified Unlimited Release 15

  16. COMMON SQL & COMMON DATAWEAVE Use OData like syntax to create dynamic parameterized SQL queries Prevents SQL injection Used on the system API level Allows the use of RAML specifications vs OData APIkit New Tools VS Code Dataweave Extension Reuse Mappers, Functions, Transformations Dependency in pom.xml UUR NSC-614-5388 06/2023 Unclassified Unlimited Release 16

  17. GITLAB CI/CD Common templates API Build/Deploy Custom Policy Build/Deploy Custom Module Build/Deploy Maven Release Tags Packages and Registries Code Coverage Report Increase confidence of deployments UUR NSC-614-5388 06/2023 Unclassified Unlimited Release 17

  18. FUTURE CONSIDERATIONS Munit Testing Adds confidence to APIs Easy to use and create test cases Able to show coverage report in GitLab Postman Testing Developers create examples Save to a GitLab repository Saves time Self documenting Developer should already be using postman for development Promotes collaboration Use Environments Collections UUR NSC-614-5388 06/2023 Unclassified Unlimited Release 18

  19. Q&A Andre Newsom anewsom@kcnsc.doe.gov Jeremy Taylor jtaylor@kcnsc.doe.gov UUR NSC-614-5388 06/2023 Unclassified Unlimited Release 19

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#