Submit Search
Upload
API Design Principles Essential
•
0 likes
•
249 views
Oracle Korea
Follow
기본적인 REST API에 대한 개념과 올바른 REST API 설계를 위한 가이드를 제시합니다.
Read less
Read more
Technology
Report
Share
Report
Share
1 of 54
Download now
Download to read offline
Recommended
Building microservice for api with helidon and cicd pipeline
Building microservice for api with helidon and cicd pipeline
DonghuKIM2
Api design and prototype
Api design and prototype
DonghuKIM2
CI/CD 기반의 Microservice 개발
CI/CD 기반의 Microservice 개발
Oracle Korea
Spring boot microservice metrics monitoring
Spring boot microservice metrics monitoring
Oracle Korea
SpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSA
Oracle Korea
JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?
Edward Burns
20191119 Cloud Native Java : GraalVM
20191119 Cloud Native Java : GraalVM
Taewan Kim
DEVNET-2002 Coding 201: Coding Skills 201: Going Further with REST and Python...
DEVNET-2002 Coding 201: Coding Skills 201: Going Further with REST and Python...
Cisco DevNet
Recommended
Building microservice for api with helidon and cicd pipeline
Building microservice for api with helidon and cicd pipeline
DonghuKIM2
Api design and prototype
Api design and prototype
DonghuKIM2
CI/CD 기반의 Microservice 개발
CI/CD 기반의 Microservice 개발
Oracle Korea
Spring boot microservice metrics monitoring
Spring boot microservice metrics monitoring
Oracle Korea
SpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSA
Oracle Korea
JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?
Edward Burns
20191119 Cloud Native Java : GraalVM
20191119 Cloud Native Java : GraalVM
Taewan Kim
DEVNET-2002 Coding 201: Coding Skills 201: Going Further with REST and Python...
DEVNET-2002 Coding 201: Coding Skills 201: Going Further with REST and Python...
Cisco DevNet
Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015
Edward Burns
CON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To You
Edward Burns
Apic dc api deep dive
Apic dc api deep dive
Cisco DevNet
MySQL InnoDB Cluster / ReplicaSet - Making Provisioning & Troubleshooting as ...
MySQL InnoDB Cluster / ReplicaSet - Making Provisioning & Troubleshooting as ...
Miguel Araújo
General Capabilities of GraalVM by Oleg Selajev @shelajev
General Capabilities of GraalVM by Oleg Selajev @shelajev
Oracle Developers
Jakarta EE: Today and Tomorrow
Jakarta EE: Today and Tomorrow
Dmitry Kornilov
Spring - CDI Interop
Spring - CDI Interop
Ray Ploski
Adopt-a-JSR for JSON Processing 1.1, JSR 374
Adopt-a-JSR for JSON Processing 1.1, JSR 374
Heather VanCura
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
Edward Burns
Apache, osgi and karaf par Guillaume Nodet
Apache, osgi and karaf par Guillaume Nodet
Normandy JUG
Down-to-Earth Microservices with Java EE
Down-to-Earth Microservices with Java EE
Reza Rahman
Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!
Reza Rahman
MySQL Shell - The DevOps Tool for MySQL
MySQL Shell - The DevOps Tool for MySQL
Miguel Araújo
Cloud Native Java GraalVM 이상과 현실
Cloud Native Java GraalVM 이상과 현실
Taewan Kim
Oracle Keynote from JMagghreb 2014
Oracle Keynote from JMagghreb 2014
Simon Ritter
Modern web application development with java ee 7
Modern web application development with java ee 7
Shekhar Gulati
Oracle APEX 기초 워크샵 - 실습 가이드 문서: Part 2 (2/2)
Oracle APEX 기초 워크샵 - 실습 가이드 문서: Part 2 (2/2)
Taewan Kim
Winning the Lottery with Spring: A Microservices Case Study for the Dutch Lot...
Winning the Lottery with Spring: A Microservices Case Study for the Dutch Lot...
VMware Tanzu
MVC 1.0 / JSR 371
MVC 1.0 / JSR 371
David Delabassee
Puppet devops wdec
Puppet devops wdec
Wojciech Dec
10thMeetup-20190420-REST API Design Principles 되새기기
10thMeetup-20190420-REST API Design Principles 되새기기
DongHee Lee
Public hyperledger meetup sf may 2018
Public hyperledger meetup sf may 2018
Oracle Developers
More Related Content
What's hot
Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015
Edward Burns
CON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To You
Edward Burns
Apic dc api deep dive
Apic dc api deep dive
Cisco DevNet
MySQL InnoDB Cluster / ReplicaSet - Making Provisioning & Troubleshooting as ...
MySQL InnoDB Cluster / ReplicaSet - Making Provisioning & Troubleshooting as ...
Miguel Araújo
General Capabilities of GraalVM by Oleg Selajev @shelajev
General Capabilities of GraalVM by Oleg Selajev @shelajev
Oracle Developers
Jakarta EE: Today and Tomorrow
Jakarta EE: Today and Tomorrow
Dmitry Kornilov
Spring - CDI Interop
Spring - CDI Interop
Ray Ploski
Adopt-a-JSR for JSON Processing 1.1, JSR 374
Adopt-a-JSR for JSON Processing 1.1, JSR 374
Heather VanCura
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
Edward Burns
Apache, osgi and karaf par Guillaume Nodet
Apache, osgi and karaf par Guillaume Nodet
Normandy JUG
Down-to-Earth Microservices with Java EE
Down-to-Earth Microservices with Java EE
Reza Rahman
Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!
Reza Rahman
MySQL Shell - The DevOps Tool for MySQL
MySQL Shell - The DevOps Tool for MySQL
Miguel Araújo
Cloud Native Java GraalVM 이상과 현실
Cloud Native Java GraalVM 이상과 현실
Taewan Kim
Oracle Keynote from JMagghreb 2014
Oracle Keynote from JMagghreb 2014
Simon Ritter
Modern web application development with java ee 7
Modern web application development with java ee 7
Shekhar Gulati
Oracle APEX 기초 워크샵 - 실습 가이드 문서: Part 2 (2/2)
Oracle APEX 기초 워크샵 - 실습 가이드 문서: Part 2 (2/2)
Taewan Kim
Winning the Lottery with Spring: A Microservices Case Study for the Dutch Lot...
Winning the Lottery with Spring: A Microservices Case Study for the Dutch Lot...
VMware Tanzu
MVC 1.0 / JSR 371
MVC 1.0 / JSR 371
David Delabassee
Puppet devops wdec
Puppet devops wdec
Wojciech Dec
What's hot
(20)
Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015
CON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To You
Apic dc api deep dive
Apic dc api deep dive
MySQL InnoDB Cluster / ReplicaSet - Making Provisioning & Troubleshooting as ...
MySQL InnoDB Cluster / ReplicaSet - Making Provisioning & Troubleshooting as ...
General Capabilities of GraalVM by Oleg Selajev @shelajev
General Capabilities of GraalVM by Oleg Selajev @shelajev
Jakarta EE: Today and Tomorrow
Jakarta EE: Today and Tomorrow
Spring - CDI Interop
Spring - CDI Interop
Adopt-a-JSR for JSON Processing 1.1, JSR 374
Adopt-a-JSR for JSON Processing 1.1, JSR 374
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
Apache, osgi and karaf par Guillaume Nodet
Apache, osgi and karaf par Guillaume Nodet
Down-to-Earth Microservices with Java EE
Down-to-Earth Microservices with Java EE
Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!
MySQL Shell - The DevOps Tool for MySQL
MySQL Shell - The DevOps Tool for MySQL
Cloud Native Java GraalVM 이상과 현실
Cloud Native Java GraalVM 이상과 현실
Oracle Keynote from JMagghreb 2014
Oracle Keynote from JMagghreb 2014
Modern web application development with java ee 7
Modern web application development with java ee 7
Oracle APEX 기초 워크샵 - 실습 가이드 문서: Part 2 (2/2)
Oracle APEX 기초 워크샵 - 실습 가이드 문서: Part 2 (2/2)
Winning the Lottery with Spring: A Microservices Case Study for the Dutch Lot...
Winning the Lottery with Spring: A Microservices Case Study for the Dutch Lot...
MVC 1.0 / JSR 371
MVC 1.0 / JSR 371
Puppet devops wdec
Puppet devops wdec
Similar to API Design Principles Essential
10thMeetup-20190420-REST API Design Principles 되새기기
10thMeetup-20190420-REST API Design Principles 되새기기
DongHee Lee
Public hyperledger meetup sf may 2018
Public hyperledger meetup sf may 2018
Oracle Developers
Crafting enhanced customer experience through chatbots, beacons and oracle jet
Crafting enhanced customer experience through chatbots, beacons and oracle jet
Rohit Dhamija
RESTful Services for your Oracle Autonomous Database
RESTful Services for your Oracle Autonomous Database
Jeff Smith
Extending Enterprise Applications to mobile interfaces-Final
Extending Enterprise Applications to mobile interfaces-Final
Rohit Dhamija
Hit Refresh with Oracle GoldenGate Microservices
Hit Refresh with Oracle GoldenGate Microservices
Bobby Curtis
Oracle goldegate microservice
Oracle goldegate microservice
Mojtaba Khandan
How to add stuff to MySQL
How to add stuff to MySQL
Georgi Kodinov
9thMeetup-20190316-CI/CD 기반의 Microservice 배포
9thMeetup-20190316-CI/CD 기반의 Microservice 배포
DongHee Lee
Nonblocking Database Access in Helidon SE
Nonblocking Database Access in Helidon SE
Dmitry Kornilov
Oracle Cloud Café hybrid Cloud 19 mai 2016
Oracle Cloud Café hybrid Cloud 19 mai 2016
Sorathaya Sirimanotham
Oracle Management Cloud - HybridCloud Café - May 2016
Oracle Management Cloud - HybridCloud Café - May 2016
Bastien Leblanc
CSPA Keynote: BLOCKCHAIN for Enterprise
CSPA Keynote: BLOCKCHAIN for Enterprise
David Haimes
Oracle NoSQL
Oracle NoSQL
Oracle Korea
Oracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native App
Paulo Alberto Simoes ∴
Path to Resilient and Observable Microservices
Path to Resilient and Observable Microservices
Peter Jausovec
Serverless patterns
Serverless patterns
Jesse Butler
Autonomous Data Warehouse
Autonomous Data Warehouse
MarketingArrowECS_CZ
Oracle REST Data Services
Oracle REST Data Services
Chris Muir
ADW Topic.pdf
ADW Topic.pdf
MrSatheshAbrahamLeoC
Similar to API Design Principles Essential
(20)
10thMeetup-20190420-REST API Design Principles 되새기기
10thMeetup-20190420-REST API Design Principles 되새기기
Public hyperledger meetup sf may 2018
Public hyperledger meetup sf may 2018
Crafting enhanced customer experience through chatbots, beacons and oracle jet
Crafting enhanced customer experience through chatbots, beacons and oracle jet
RESTful Services for your Oracle Autonomous Database
RESTful Services for your Oracle Autonomous Database
Extending Enterprise Applications to mobile interfaces-Final
Extending Enterprise Applications to mobile interfaces-Final
Hit Refresh with Oracle GoldenGate Microservices
Hit Refresh with Oracle GoldenGate Microservices
Oracle goldegate microservice
Oracle goldegate microservice
How to add stuff to MySQL
How to add stuff to MySQL
9thMeetup-20190316-CI/CD 기반의 Microservice 배포
9thMeetup-20190316-CI/CD 기반의 Microservice 배포
Nonblocking Database Access in Helidon SE
Nonblocking Database Access in Helidon SE
Oracle Cloud Café hybrid Cloud 19 mai 2016
Oracle Cloud Café hybrid Cloud 19 mai 2016
Oracle Management Cloud - HybridCloud Café - May 2016
Oracle Management Cloud - HybridCloud Café - May 2016
CSPA Keynote: BLOCKCHAIN for Enterprise
CSPA Keynote: BLOCKCHAIN for Enterprise
Oracle NoSQL
Oracle NoSQL
Oracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native App
Path to Resilient and Observable Microservices
Path to Resilient and Observable Microservices
Serverless patterns
Serverless patterns
Autonomous Data Warehouse
Autonomous Data Warehouse
Oracle REST Data Services
Oracle REST Data Services
ADW Topic.pdf
ADW Topic.pdf
More from Oracle Korea
Oracle Blockchain Platform_Wonjo Yoo
Oracle Blockchain Platform_Wonjo Yoo
Oracle Korea
Oracle Blockchain_JaeHo Park_CTO
Oracle Blockchain_JaeHo Park_CTO
Oracle Korea
Oracle cloud data interface
Oracle cloud data interface
Oracle Korea
On premise db & cloud database
On premise db & cloud database
Oracle Korea
Opentracing jaeger
Opentracing jaeger
Oracle Korea
Which Questions We Should Have
Which Questions We Should Have
Oracle Korea
Enterprise Postgres
Enterprise Postgres
Oracle Korea
MySQL Document Store를 활용한 NoSQL 개발
MySQL Document Store를 활용한 NoSQL 개발
Oracle Korea
kubernetes from beginner to advanced
kubernetes from beginner to advanced
Oracle Korea
OpenJDK & Graalvm
OpenJDK & Graalvm
Oracle Korea
Cloud Native 자바 플랫폼: Graalvm Overview
Cloud Native 자바 플랫폼: Graalvm Overview
Oracle Korea
Eclipse MicroProfile 과 Microservice Java framework – Helidon
Eclipse MicroProfile 과 Microservice Java framework – Helidon
Oracle Korea
times ten in-memory database for extreme performance
times ten in-memory database for extreme performance
Oracle Korea
[Main Session] 카프카, 데이터 플랫폼의 최강자
[Main Session] 카프카, 데이터 플랫폼의 최강자
Oracle Korea
[Demo session] 관리형 Kafka 서비스 - Oracle Event Hub Service
[Demo session] 관리형 Kafka 서비스 - Oracle Event Hub Service
Oracle Korea
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
Oracle Korea
[Main Session] 보안을 고려한 애플리케이션 개발 공정 및 실무적 수행 방법 소개
[Main Session] 보안을 고려한 애플리케이션 개발 공정 및 실무적 수행 방법 소개
Oracle Korea
[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로
[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로
Oracle Korea
[Hands-on 필수 준비 사항] 쇼핑몰 예제를 통한 Microservice 개발/배포 실습 - 황주필 부장 / 강인호 부장, 한국오라클
[Hands-on 필수 준비 사항] 쇼핑몰 예제를 통한 Microservice 개발/배포 실습 - 황주필 부장 / 강인호 부장, 한국오라클
Oracle Korea
Serverless Computing 친해지기,Hands on실습 (한국오라클 김종규 컨설턴트)
Serverless Computing 친해지기,Hands on실습 (한국오라클 김종규 컨설턴트)
Oracle Korea
More from Oracle Korea
(20)
Oracle Blockchain Platform_Wonjo Yoo
Oracle Blockchain Platform_Wonjo Yoo
Oracle Blockchain_JaeHo Park_CTO
Oracle Blockchain_JaeHo Park_CTO
Oracle cloud data interface
Oracle cloud data interface
On premise db & cloud database
On premise db & cloud database
Opentracing jaeger
Opentracing jaeger
Which Questions We Should Have
Which Questions We Should Have
Enterprise Postgres
Enterprise Postgres
MySQL Document Store를 활용한 NoSQL 개발
MySQL Document Store를 활용한 NoSQL 개발
kubernetes from beginner to advanced
kubernetes from beginner to advanced
OpenJDK & Graalvm
OpenJDK & Graalvm
Cloud Native 자바 플랫폼: Graalvm Overview
Cloud Native 자바 플랫폼: Graalvm Overview
Eclipse MicroProfile 과 Microservice Java framework – Helidon
Eclipse MicroProfile 과 Microservice Java framework – Helidon
times ten in-memory database for extreme performance
times ten in-memory database for extreme performance
[Main Session] 카프카, 데이터 플랫폼의 최강자
[Main Session] 카프카, 데이터 플랫폼의 최강자
[Demo session] 관리형 Kafka 서비스 - Oracle Event Hub Service
[Demo session] 관리형 Kafka 서비스 - Oracle Event Hub Service
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
[Main Session] 보안을 고려한 애플리케이션 개발 공정 및 실무적 수행 방법 소개
[Main Session] 보안을 고려한 애플리케이션 개발 공정 및 실무적 수행 방법 소개
[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로
[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로
[Hands-on 필수 준비 사항] 쇼핑몰 예제를 통한 Microservice 개발/배포 실습 - 황주필 부장 / 강인호 부장, 한국오라클
[Hands-on 필수 준비 사항] 쇼핑몰 예제를 통한 Microservice 개발/배포 실습 - 황주필 부장 / 강인호 부장, 한국오라클
Serverless Computing 친해지기,Hands on실습 (한국오라클 김종규 컨설턴트)
Serverless Computing 친해지기,Hands on실습 (한국오라클 김종규 컨설턴트)
Recently uploaded
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Neo4j
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
Andrey Devyatkin
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
RTylerCroy
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
Pixlogix Infotech
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Product Anonymous
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Miguel Araújo
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Safe Software
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
UK Journal
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
apidays
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
Antenna Manufacturer Coco
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
apidays
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
Principled Technologies
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
Boston Institute of Analytics
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
hans926745
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
hans926745
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Rafal Los
Recently uploaded
(20)
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
API Design Principles Essential
1.
2.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 10th Oracle Developer MeetupREST API Design Principles 되새기기 이동희(DongHee Lee) Principal Solution Engineer Oracle Korea Solution Engineering
3.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 3 Microservice 배포 지난 3월 16일…. 1 코드 개발 후 코드 Push 2 Wercker 빌드 후 Image 생성 3 Image를 Registry에 Push 4 Kubernetes에 배포 5 Image를 가져와서 Kubernetes 내 Container 기동 개발자 OCI Registry OCI Container Engine for Kubernetes (OKE) Wercker 서비스를 이용한 Workflow 자동화
4.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 4 오늘은… 1 코드 개발 후 코드 Push 개발자
5.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 5 오늘은… 코드 개발 후 코드 Push 개발자 요건 분석 디자인 & 프로토타입 개발 Backend REST API 설계 Front-End Back-End
6.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 6 SOAP vs. REST
7.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 7 Simple Object Access Protocol vs. REpresentational State Transfer
8.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 8 SOAP: Protocol vs. REST: Architectural Style
9.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | What is REST? • 2000년, Roy Fielding의 박사 논문에서 제시된 분산 Hypermedia 시스템을 위한 아키텍처 스타일 • Guiding Principles of REST – Client–Server – Stateless – Cacheable – Uniform interface • identification of resources • manipulation of resources through representations • self-descriptive messages • hypermedia as the engine of application state – Layered system – Code on demand (optional) Confidential – Oracle Internal/Restricted/Highly Restricted 9
10.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 10 – Uniform Interface • Identification of Resources • Manipulation of Resources through Representations • Self-Descriptive Messages • Hypermedia As The Engine Of Application State
11.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 11 Resource
12.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 12 #1. Use nouns to represent resources : Resource를 명사로 표현하라.
13.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 13 첫 번째는 집합(Collection)
14.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 14 /users
15.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 15 두 번째는 단일 개체
16.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 16 /users/{userId}
17.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 17 #2. HTTP Operation를 사용하라
18.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 18 CREATE READ UPDATE DELETE
19.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 19 POST GET PUT DELETE
20.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 20 Resource POST (create) GET (read) PUT (update) DELETE (delete) /users Create new user List users Bulk Update users Delete all users /users/kildong - Get kildong Update kildong Delete kildong
21.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 21 OCI IAM Service API > User 예시 Resource POST (create) GET (read) PUT (update) DELETE (delete) /users CreateUser ListUsers - - /users/kildong - GetUser UpdateUser DeleteUser
22.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 22 추가로 필요한 조건들은 어떻게?
23.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 23 #3. 추가로 조건들은 Query Parameter를 사용하라
24.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 24 /users?title=Mr&status=active
25.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 25 /users?q={status=`active`}
26.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 26 #4. Error 메시지
27.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 27 Oracle OCI HTTP Status Code: 401 { "code": "NotAuthenticated", "message": "The required information to complete authentication was not provided or was incorrect." } FaceBook HTTP Status Code: 200 { "error": { "message": "Message describing the error", "type": "OAuthException", "code": 190, "error_subcode": 460, "error_user_title": "A title", "error_user_msg": "A message", "fbtrace_id": "EJplcsCHuLu“ } } HTTP Status Code는 항상 200, 오류 코드와 하위 오류코드 사용 Twitter HTTP Status Code: 404 { "errors": [ { "message":"Sorry, that page does not exist", "code":34 }] } HTTP Status Code중 15개 사용, 오류 코드 사용 코드 이름 조치 190 액세스 토큰이 만료됨 새 액세스 토큰을 가져옵니다. 코드 이름 설명 34 Sorry, that page does not exist Corresponds with HTTP 404. The specified resource was not found. HTTP Status Code Error Code Description 401 NotAuthenticated The required authentication information was not provided or was incorrect…
28.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | 2가지 Code 사용 • HTTP Status Codes - 클라이언트 코드를 위해 사용 – 1xx (Informational): The request was received, continuing process – 2xx (Successful): The request was successfully received, understood, and accepted – 3xx (Redirection): Further action needs to be taken in order to complete the request – 4xx (Client Error): The request contains bad syntax or cannot be fulfilled – 5xx (Server Error): The server failed to fulfill an apparently valid request • Custom Error Codes – 사람을 위한 메시지 Confidential – Oracle Internal/Restricted/Highly Restricted 28 예시) OCI REST API { "code": "NotAuthenticated" or "34" "message": "The required information to complete authentication was not provided or was incorrect." }
29.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 29 #5. API 버전 관리
30.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Version • Facebook – /v3.2/{user-id}/post • Twitter – /5/accounts • Oracle PaaS: IDCS API – /admin/v1/Users/{id} • Oracle Cloud Infrastructure API – /20160918/users/ Confidential – Oracle Internal/Restricted/Highly Restricted 30
31.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 31 그 밖에 사항
32.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 32 #6. 응답 메시지는 항상 모든 것을 줄까?
33.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | 조회 칼럼 지정 • Facebook – /{your-user-id}/photos – /{your-user-id}/photos?fields=height,width Confidential – Oracle Internal/Restricted/Highly Restricted 33 { "data": [ { "created_time": "2016-08-23T13:12:10+0000", "id": "1308573619175349" // Photo ID } ] } { "data": [ { "height": 720, "width": 720, "id": "1308573619175349" // Photo ID } ] }
34.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 34 #7. Page 처리는?
35.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | List Pagination • FaceBook – offset – limit • Twitter – page – rpp (return per page) Confidential – Oracle Internal/Restricted/Highly Restricted 35
36.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | List Pagination • FaceBook – offset – limit • Twitter – count – cursor • LinkedIn – start – count Confidential – Oracle Internal/Restricted/Highly Restricted 36
37.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | List Pagination • FaceBook – offset – limit • Twitter – count – cursor • LinkedIn – start – count Confidential – Oracle Internal/Restricted/Highly Restricted 37 • Oracle PaaS API – offset – limit • Oracle Cloud Infrastructure API – page – limit
38.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Time-based Pagination • FaceBook – since – until – /me/posts?since=1364849754&until=1364587774 Confidential – Oracle Internal/Restricted/Highly Restricted 38 조회 결과의 개수가 최대 얼마나 클지를 실행 전까지는 알 수 없습니다. 질문. 직접 개발한다면, 결과를 어떤 방식으로 줄까요?
39.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 39 HATEOAS (Hypermedia As The Engine Of Application State)
40.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Hypermedia As The Engine Of Application State • FaceBook – /me/posts?offset=0&limit=2 Confidential – Oracle Internal/Restricted/Highly Restricted 40 { "data": [ { "message": "", "created_time": "2012-03-20T06:04:36+0000", "id": "" }, { "message": "", "created_time": "2012-01-19T11:26:04+0000", "id": "2700528826685328_256082517796650" } ], "paging": { "previous": "https://graph.facebook.com/v3.2/2700528826685328/posts?limit=2&~~~&__previous=1", "next": "https://graph.facebook.com/v3.2/2700528826685328/posts?limit=2&~~~~" } }
41.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Hypermedia As The Engine Of Application State • FaceBook – /me/posts?since=1298937600&until=1546300800&limit=2 Confidential – Oracle Internal/Restricted/Highly Restricted 41 { "data": [ { "message": "", "created_time": "2012-03-20T06:04:36+0000", "id": "2700528826685328_295284543876447" }, { "message": "", "created_time": "2012-01-19T11:26:04+0000", "id": "2700528826685328_256082517796650" } ], "paging": { "previous": "https://graph.facebook.com/v3.2/2700528826685328/posts?limit=2&since=1332223476 &format=json&access_token=~~~~&__paging_token=~~~~&__previous=1", "next": "https://graph.facebook.com/v3.2/2700528826685328/posts?limit=2&since=1298937600 &format=json&access_token=~~~~&until=1326972364&__paging_token=~~~~" } }
42.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 42 Store Or Association?
43.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 43 /users/{userId}/state
44.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 44 Non Resource
45.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 45 HelloWorld Translate Exchange
46.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 46 Use verb : 동사로 표현하라.
47.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 47 /translate?from=korean&to=english
48.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | • KakaoPay API Confidential – Oracle Internal/Restricted/Highly Restricted 48
49.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | • KakaoPay API Confidential – Oracle Internal/Restricted/Highly Restricted 49
50.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 50 REST API Design Principles
51.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | REST API Design Principles • #1. Resource를 명사로 표현하라 – 첫 번째는 집합(Collection), 두 번째는 단일개체 • #2. HTTP Operation를 사용하라 • #3. 추가로 조건들은 Query Parameter를 사용하라 • #4. Error 메시지는 HTTP Response Codes & Custom Error Codes • #5. API 버전 관리 – /v1/users or /20160918/users Confidential – Oracle Internal/Restricted/Highly Restricted 51
52.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 52 ## 다음 세션을 준비사항 ## - GitHub 계정 - 개인 노트북에 node.js 설치
53.
Copyright © 2019,
Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 53
Download now