Soumettre la recherche
Mettre en ligne
Rapid java backend and api development for mobile devices
•
Télécharger en tant que PPT, PDF
•
3 j'aime
•
1,916 vues
C
ciklum_ods
Suivre
Java Saturday, Ciklum Odessa, Oct 29-2011
Lire moins
Lire la suite
Technologie
Formation
Signaler
Partager
Signaler
Partager
1 sur 18
Télécharger maintenant
Recommandé
Psr 7 symfony-day
Psr 7 symfony-day
Marco Perone
PHP And Web Services: Perfect Partners
PHP And Web Services: Perfect Partners
Lorna Mitchell
Psr-7
Psr-7
Marco Perone
JavaOne 2009 - TS-5276 - RESTful Protocol Buffers
JavaOne 2009 - TS-5276 - RESTful Protocol Buffers
Matt O'Keefe
Dive into Fluentd plugin v0.12
Dive into Fluentd plugin v0.12
N Masahiro
Fluentd v0.12 master guide
Fluentd v0.12 master guide
N Masahiro
Cloudy Open Source and DevOps
Cloudy Open Source and DevOps
Matt O'Keefe
JSON-RPC - JSON Remote Procedure Call
JSON-RPC - JSON Remote Procedure Call
Peter R. Egli
Recommandé
Psr 7 symfony-day
Psr 7 symfony-day
Marco Perone
PHP And Web Services: Perfect Partners
PHP And Web Services: Perfect Partners
Lorna Mitchell
Psr-7
Psr-7
Marco Perone
JavaOne 2009 - TS-5276 - RESTful Protocol Buffers
JavaOne 2009 - TS-5276 - RESTful Protocol Buffers
Matt O'Keefe
Dive into Fluentd plugin v0.12
Dive into Fluentd plugin v0.12
N Masahiro
Fluentd v0.12 master guide
Fluentd v0.12 master guide
N Masahiro
Cloudy Open Source and DevOps
Cloudy Open Source and DevOps
Matt O'Keefe
JSON-RPC - JSON Remote Procedure Call
JSON-RPC - JSON Remote Procedure Call
Peter R. Egli
Json-based Service Oriented Architecture for the web
Json-based Service Oriented Architecture for the web
kriszyp
Consuming RESTful services in PHP
Consuming RESTful services in PHP
Zoran Jeremic
HornetQ Presentation On JBoss World 2009
HornetQ Presentation On JBoss World 2009
jarfield
REST API Laravel
REST API Laravel
John Dave Decano
The basics of fluentd
The basics of fluentd
Treasure Data, Inc.
Develop webservice in PHP
Develop webservice in PHP
Sanil Subhash Chandra Bose
The Real Time Web with XMPP
The Real Time Web with XMPP
Jack Moffitt
REST in the shade of WCF
REST in the shade of WCF
SzymonPobiega
JSON-RPC Proxy Generation with PHP 5
JSON-RPC Proxy Generation with PHP 5
Stephan Schmidt
Submit PHP: Standards in PHP world. Михайло Морозов
Submit PHP: Standards in PHP world. Михайло Морозов
Binary Studio
[WSO2Con EU 2017] Exploring Ballerina Toolset
[WSO2Con EU 2017] Exploring Ballerina Toolset
WSO2
2019 11-bgphp
2019 11-bgphp
dantleech
Fluentd v1.0 in a nutshell
Fluentd v1.0 in a nutshell
N Masahiro
API en Protobuf : 3 fois mieux que le JSON par Pascal CORPET
API en Protobuf : 3 fois mieux que le JSON par Pascal CORPET
La Cuisine du Web
Learn REST API with Python
Learn REST API with Python
Larry Cai
Web develop in flask
Web develop in flask
Jim Yeh
Server-side Technologies in Java
Server-side Technologies in Java
Anirban Majumdar
Rest api with Python
Rest api with Python
Santosh Ghimire
The basics of fluentd
The basics of fluentd
Treasure Data, Inc.
Building Applications Using Ajax
Building Applications Using Ajax
s_pradeep
Java: tools & techniques for TDD
Java: tools & techniques for TDD
Agileee
Bring the fun back to java
Bring the fun back to java
ciklum_ods
Contenu connexe
Tendances
Json-based Service Oriented Architecture for the web
Json-based Service Oriented Architecture for the web
kriszyp
Consuming RESTful services in PHP
Consuming RESTful services in PHP
Zoran Jeremic
HornetQ Presentation On JBoss World 2009
HornetQ Presentation On JBoss World 2009
jarfield
REST API Laravel
REST API Laravel
John Dave Decano
The basics of fluentd
The basics of fluentd
Treasure Data, Inc.
Develop webservice in PHP
Develop webservice in PHP
Sanil Subhash Chandra Bose
The Real Time Web with XMPP
The Real Time Web with XMPP
Jack Moffitt
REST in the shade of WCF
REST in the shade of WCF
SzymonPobiega
JSON-RPC Proxy Generation with PHP 5
JSON-RPC Proxy Generation with PHP 5
Stephan Schmidt
Submit PHP: Standards in PHP world. Михайло Морозов
Submit PHP: Standards in PHP world. Михайло Морозов
Binary Studio
[WSO2Con EU 2017] Exploring Ballerina Toolset
[WSO2Con EU 2017] Exploring Ballerina Toolset
WSO2
2019 11-bgphp
2019 11-bgphp
dantleech
Fluentd v1.0 in a nutshell
Fluentd v1.0 in a nutshell
N Masahiro
API en Protobuf : 3 fois mieux que le JSON par Pascal CORPET
API en Protobuf : 3 fois mieux que le JSON par Pascal CORPET
La Cuisine du Web
Learn REST API with Python
Learn REST API with Python
Larry Cai
Web develop in flask
Web develop in flask
Jim Yeh
Server-side Technologies in Java
Server-side Technologies in Java
Anirban Majumdar
Rest api with Python
Rest api with Python
Santosh Ghimire
The basics of fluentd
The basics of fluentd
Treasure Data, Inc.
Building Applications Using Ajax
Building Applications Using Ajax
s_pradeep
Tendances
(20)
Json-based Service Oriented Architecture for the web
Json-based Service Oriented Architecture for the web
Consuming RESTful services in PHP
Consuming RESTful services in PHP
HornetQ Presentation On JBoss World 2009
HornetQ Presentation On JBoss World 2009
REST API Laravel
REST API Laravel
The basics of fluentd
The basics of fluentd
Develop webservice in PHP
Develop webservice in PHP
The Real Time Web with XMPP
The Real Time Web with XMPP
REST in the shade of WCF
REST in the shade of WCF
JSON-RPC Proxy Generation with PHP 5
JSON-RPC Proxy Generation with PHP 5
Submit PHP: Standards in PHP world. Михайло Морозов
Submit PHP: Standards in PHP world. Михайло Морозов
[WSO2Con EU 2017] Exploring Ballerina Toolset
[WSO2Con EU 2017] Exploring Ballerina Toolset
2019 11-bgphp
2019 11-bgphp
Fluentd v1.0 in a nutshell
Fluentd v1.0 in a nutshell
API en Protobuf : 3 fois mieux que le JSON par Pascal CORPET
API en Protobuf : 3 fois mieux que le JSON par Pascal CORPET
Learn REST API with Python
Learn REST API with Python
Web develop in flask
Web develop in flask
Server-side Technologies in Java
Server-side Technologies in Java
Rest api with Python
Rest api with Python
The basics of fluentd
The basics of fluentd
Building Applications Using Ajax
Building Applications Using Ajax
En vedette
Java: tools & techniques for TDD
Java: tools & techniques for TDD
Agileee
Bring the fun back to java
Bring the fun back to java
ciklum_ods
Методы и средства обработки географической информации
Методы и средства обработки географической информации
ciklum_ods
Unit testing and junit
Unit testing and junit
Ömer Taşkın
Google protocol buffers в мобильных проектах
Google protocol buffers в мобильных проектах
ciklum_ods
разработка игр на движке Cosos2d
разработка игр на движке Cosos2d
ciklum_ods
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
Luminary Labs
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
LinkedIn
En vedette
(8)
Java: tools & techniques for TDD
Java: tools & techniques for TDD
Bring the fun back to java
Bring the fun back to java
Методы и средства обработки географической информации
Методы и средства обработки географической информации
Unit testing and junit
Unit testing and junit
Google protocol buffers в мобильных проектах
Google protocol buffers в мобильных проектах
разработка игр на движке Cosos2d
разработка игр на движке Cosos2d
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
Similaire à Rapid java backend and api development for mobile devices
Creating Great REST and gRPC API Experiences (in Swift)
Creating Great REST and gRPC API Experiences (in Swift)
Tim Burks
sMash at May NYPHP UG
sMash at May NYPHP UG
Project Zero
Intro to Node
Intro to Node
Aaron Stannard
Taming Deployment With Smart Frog
Taming Deployment With Smart Frog
Steve Loughran
jkljklj
jkljklj
hoefo
Interoperable Web Services with JAX-WS and WSIT
Interoperable Web Services with JAX-WS and WSIT
Carol McDonald
Grâce aux tags Varnish, j'ai switché ma prod sur Raspberry Pi
Grâce aux tags Varnish, j'ai switché ma prod sur Raspberry Pi
Jérémy Derussé
XML-RPC and SOAP (April 2003)
XML-RPC and SOAP (April 2003)
Kiran Jonnalagadda
Exploring Async PHP (SF Live Berlin 2019)
Exploring Async PHP (SF Live Berlin 2019)
dantleech
Service Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMix
Bruce Snyder
Implementing Comet using PHP
Implementing Comet using PHP
King Foo
Python RESTful webservices with Python: Flask and Django solutions
Python RESTful webservices with Python: Flask and Django solutions
Solution4Future
FMS Administration Seminar
FMS Administration Seminar
Yoss Cohen
Python tools for testing web services over HTTP
Python tools for testing web services over HTTP
Mykhailo Kolesnyk
Using and scaling Rack and Rack-based middleware
Using and scaling Rack and Rack-based middleware
Alona Mekhovova
Apache Aries Blog Sample
Apache Aries Blog Sample
Skills Matter
Fluentd and Embulk Game Server 4
Fluentd and Embulk Game Server 4
N Masahiro
Switch to Backend 2023
Switch to Backend 2023
Google Developer Students Club NIT Silchar
RESTEasy
RESTEasy
Massimiliano Dessì
Gohan
Gohan
Nachi Ueno
Similaire à Rapid java backend and api development for mobile devices
(20)
Creating Great REST and gRPC API Experiences (in Swift)
Creating Great REST and gRPC API Experiences (in Swift)
sMash at May NYPHP UG
sMash at May NYPHP UG
Intro to Node
Intro to Node
Taming Deployment With Smart Frog
Taming Deployment With Smart Frog
jkljklj
jkljklj
Interoperable Web Services with JAX-WS and WSIT
Interoperable Web Services with JAX-WS and WSIT
Grâce aux tags Varnish, j'ai switché ma prod sur Raspberry Pi
Grâce aux tags Varnish, j'ai switché ma prod sur Raspberry Pi
XML-RPC and SOAP (April 2003)
XML-RPC and SOAP (April 2003)
Exploring Async PHP (SF Live Berlin 2019)
Exploring Async PHP (SF Live Berlin 2019)
Service Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMix
Implementing Comet using PHP
Implementing Comet using PHP
Python RESTful webservices with Python: Flask and Django solutions
Python RESTful webservices with Python: Flask and Django solutions
FMS Administration Seminar
FMS Administration Seminar
Python tools for testing web services over HTTP
Python tools for testing web services over HTTP
Using and scaling Rack and Rack-based middleware
Using and scaling Rack and Rack-based middleware
Apache Aries Blog Sample
Apache Aries Blog Sample
Fluentd and Embulk Game Server 4
Fluentd and Embulk Game Server 4
Switch to Backend 2023
Switch to Backend 2023
RESTEasy
RESTEasy
Gohan
Gohan
Dernier
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
AndikSusilo4
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
XfilesPro
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Malak Abu Hammad
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
Neo4j
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Katpro Technologies
Slack Application Development 101 Slides
Slack Application Development 101 Slides
praypatel2
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
hans926745
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
2toLead Limited
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
Mark Billinghurst
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
soniya singh
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Radu Cotescu
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
Pixlogix Infotech
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
shyamraj55
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Delhi Call girls
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
BookNet Canada
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Delhi Call girls
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Patryk Bandurski
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
Sinan KOZAK
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
naman860154
Dernier
(20)
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Slack Application Development 101 Slides
Slack Application Development 101 Slides
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
Rapid java backend and api development for mobile devices
1.
Yaroslav Pogrebnyak Software
Developer, Ciklum [email_address] www.pogrebnyak.info Rapid Java Backend & API Development for Mobile Devices
2.
Devices & Apps
Hell How to interact? A lot of work for backend developers ]:->
3.
Device ↔ Server
interaction
4.
How to define
API? HTTP + MediaType + ... = REST? It Depends! - URI - Media-Type: xml, json, etc - Operations: create, update, delete, … - Custom conventions GET http://example.com/users/ POST http://example.com/users/ DELETE http://example.com/users/42
5.
Data Interchange Protocols
PlainText, XML, JSON, ProtocolBuffers , BERT, BSON, Thrift, MessagePack, Custom Protocol... 1. Size 2. Performance 3. Usability 4. Platforms
6.
68 bytes: {
"status" : "OK" , "response" : { "id" : 42 } } 5 bytes (hex dump): 0801 102a 0a JSON vs XML vs Protocol Buffers 119 bytes: <? xml version="1.0"?> < message > < status >OK</ status > < response > < id >42</ id > </ response > </ message >
7.
HTTP POST /api/register/
Content-Type: application/x-protobuf Accept: application/x-protobuf serialize deserialize HTTP 200 OK Content-Type: application/x-protobuf Content-Length: 5 serialize deserialize Protocol Buffers scenario
8.
Implementation
9.
API requires
strength , Java-world's advantage: Static Typing
10.
Java +
Maven + Spring + Jersey + Protocol Buffers
11.
Create project Jersey
Simple Webapp $ mvn archetype:generate -DarchetypeCatalog= http://download.java.net/maven/2 Spring + Jersey $ mvn archetype:generate -DarchetypeCatalog= http://seratch.github.com/mvn-repo/releases DIY $ cd project $ vim pom.xml :) Minimalistic Secret Template :) http://pogrebnyak.info/ciklum/spring_jersey_gpb.zip
12.
Protocol Buffers Schema
package myapi ; // POST /api/register message RegisterRequest { required string login = 1; optional string email = 2; } // Response message RegisterResponse { enum Status { SUCCESS = 0; ALREADY_EXISTS = 1; } required Status status = 1; required string id = 2; }
13.
Conventions /some/endpoint Request:
message Name Request { … } Response: message Name Response { enum Status { … } required Status status = 1; ... }
14.
Configuration Implement Protocol
Buffers Serializer/Deserializer for Jersey @Provider @Component @Consumes ( “application/x-protobuf” ) public class ProtobufMessageReader implements MessageBodyReader<Message> { // ... @Provider @Component @Produces ( “application/x-protobuf” ) public class ProtobufMessageWriter implements MessageBodyWriter<Message> { // ...
15.
applicationContext.xml DataSource &
transaction management web.xml Jersey Spring Servlet & Spring context listeners Protofile & package for generated files Controller classes Services & dao Other Stuff Protobuf serializers pom.xml project configuration
16.
Jersey Сontroller Example
@Component @Transactional @Path ( "/api" ) public class ApiController { @Autowired private ClientUserService userService; @POST @Path ( "/register" ) public RegisterResponse register( RegisterRequest r) { User user = new User(r.getLogin()); userService.createUser(user); return RegisterResponse . newBuilder () .setStatus(Status.Success) .setId(user.getId()) .build(); } }
17.
18.
Thank you! Yaroslav
Pogrebnyak [email_address] www.pogrebnyak.info Presentation: http://pogrebnyak.info/ciklum/spring_jersey_gpb.ppt Sample project: http://pogrebnyak.info/ciklum/spring_jersey_gpb.zip
Télécharger maintenant