Содержание
- 2. Вступ Сьогодні ми поговоримо про збереження даних Які способи збереження даних ви знаєте?
- 3. Вступ В Google App Engine є багато варіантів збереження даних, наприклад: Cloud SQL Cloud Storage Cloud
- 4. Datastore Datastore – це база даних, що працює в Google Cloud Вона доступна для будь-якого App
- 5. Datastore Що ж нам дає Datastore? можливість будувати масштабовані застосування можливість працювати з грандіозними масивами даних
- 6. Збереження даних З чим ви працювали і наведіть приклади: local filesystem shared filesystem cloud file storage
- 7. Datastore Коли ми працюємо з Google Datastore ми маємо використовувати наступні абстракції: kind дуже схоже на
- 8. Datastore
- 9. Datastore Відмінностей дуже багато, але спочатку можете уявляти саме так
- 10. Datastore Давайте спробуємо розібратися як зберігати об’єкти в Datastore Для цього ми розберемося з Objectify Entity
- 11. Entity import com.googlecode.objectify.annotation.Entity; import com.googlecode.objectify.annotation.Id; @Entity public class Student{ @Id Long studentId; String name; Integer course
- 12. Property types Як ви думаєте, що відбувається з вашим об’єктом на етапі збереження його в Datastore?
- 13. Property types Основні типи, що підтримуються: integers floating-point numbers strings dates binary data Але типів набагато
- 14. Збереження Давайте повернемося до нашого проекту з конференціями В нас був профайл користувача, тепер ми хочемо
- 15. Збереження @Entity public class Profile { String displayName; String mainEmail; TeeShirtSize teeShirtSize; @Id String userId; …
- 16. Datastore Keys Коли ви зберігаєте Entity в datastore, вона отримує у відповідність ключ Ключ генерується datastore
- 17. Datastore Keys Перший: В нас є проста Entity Student name course коли ми будемо зберігати дану
- 18. Datastore Keys Другий В нас є Entity в якої визначене унікальне поле Student id name course
- 19. Збереження Розберемося з збереженням даних використовуючи бібліотеку Objectify на прикладі https://code.google.com/p/objectify-appengine/wiki/BasicOperations#Saving
- 20. Збереження Для збереження Entity ObjectifyService.ofy().save().entity(entity).now(); Гарна практика визначити статичний метод ofy що буде повертати нам даний
- 21. Збереження Внесемо необхідні зміни в проект і запустимо його Запустимо консоль управління http://apis-explorer.appspot.com/apis-explorer/?base=http://localhost:8080/_ah/api Спробуємо тепер наш
- 23. Збереження Тепер підемо в панель управління в datastore
- 24. Збереження Тут ви можете: переглядати свої сутності змінювати їх робити запити до них
- 25. Key conflicts Ми говорили, що є два способи отримати ключ: автоматичний в даному випадку, Google відповідає
- 26. Видобування даних Видобування даних таке ж просте як і збереження: Key key = Key.create(Entity.class, id); Entity
- 27. Видобування даних Подивимося на практиці В нас в API є метод getProfile Що необхідно зробити? @ApiMethod(name
- 28. Видобування даних @ApiMethod(name = "getProfile", path = "profile", httpMethod = HttpMethod.GET) public Profile getProfile(final User user)
- 29. Видобування даних Або так @ApiMethod(name = "getProfile", path = "profile", httpMethod = HttpMethod.GET) public Profile getProfile(final
- 30. Видобування даних Зробимо зміни та запустимо проект Протестуємо наш API Збережіть профайл потім спробуйте getProfile
- 31. Видобування даних
- 32. Оновлення Entity Якщо ви звернете увагу на метод saveProfile Ми кожний раз створюємо новий Profile Чому
- 33. Оновлення Entity Ми кожен раз створюємо новий об’єкт і затираємо старий Інакше ми б отримали конфлікт
- 34. Оновлення Entity Мені потрібно лише трохи змінити метод saveProfile Profile profile = getProfile(user); if (profile ==
- 35. До змін
- 36. До змін Я змінив лише одне поле Що відбулося?
- 37. Після змін
- 38. Після змін
- 39. Conference Central Ми з вами зробили два методи з API В проекті який ми імпортували наявний
- 40. Web UI and Backend API
- 41. Web UI and Backend API Якщо ви зробили все про що ми говорили і запустили застосування,
- 42. Web UI and Backend API В нашому випадку обидві ці частини знаходяться в одному проекті, але
- 43. Web UI and Backend API В будь-якому випадку (один проект, окремі проекти) ви маєте авторизувати ваше
- 44. Web UI and Backend API Подивимося на ConferenceApi @Api(name = "conference", version = "v1", scopes =
- 45. Web UI and Backend API Подивимося в Constants public static final String WEB_CLIENT_ID = "replace this
- 46. Web UI and Backend API
- 47. Web UI and Backend API
- 48. Web UI and Backend API
- 49. Web UI and Backend API
- 50. Web UI and Backend API Тепер в нас є client ID Вставимо його в наші константи
- 51. Web UI and Backend API Також нам треба, що б наше застосування вірно авторизувалося Для цього
- 53. Скачать презентацию