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
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
null - The Open Security Community
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
charlottematthew16
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
RankYa
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
Pixlogix Infotech
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
Stephanie Beckett
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
DianaGray10
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
Dubai Multi Commodity Centre
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
Addepto
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
Lonnie McRorey
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
Mark Billinghurst
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
Fwdays
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
Dilum Bandara
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
Enterprise Knowledge
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Mark Simos
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
Kalema Edgar
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
Rizwan Syed
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
Sri Ambati
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
charlottematthew16
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
Sergiu Bodiu
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
Alex Barbosa Coqueiro
Dernier
(20)
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
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