Как создать RESTful API с помощью Google App Engine с Python? Я пытался использовать Cloud Endpoints, но документация не фокусируется на RESTful API. Есть ли что-то похожее на django-tastypie для GAE?REST API в Google App Engine + Python?
ответ
RESTful api можно построить на основе API EndPoint. Есть некоторые инструменты, которые помогут вам сделать вещи проще:
AppEngine остальное сервер (не основанный на конечных точках)
Drop-сервер для Google приложений App Engine, которая подвергает вашу модель данных через REST API с не Дополнительная работа.
https://code.google.com/p/appengine-rest-server/
Еще один основан на конечных точках
за счет расширения функциональных возможностей, предоставляемых классом ndb.Model и библиотеку конечных точек, эта библиотека позволяет напрямую взаимодействовать с модельными лицами в вашей API, а не запросы ProtoRPC. Например, вместо:
https://github.com/GoogleCloudPlatform/endpoints-proto-datastore
EDIT1:
Я написал успокоительный генератор апи для конечных точек.
# generate restful api in one line
BigDataLab = EndpointRestBuilder(GPCode).build(
api_name="BigDataLab",
name="bigdatalab",
version="v1",
description="My Little Api"
)
репо: https://github.com/Tagtoo/endpoints-proto-datastore-rest
Отлично! Я использую сервер Appengine Rest. Но аутентификатор и авторизатор должны быть выполнены вручную.Можете ли вы указать мне некоторые ресурсы для того же? – theG33k
https://github.com/mevinbabuc/Restify
Это легкий модуль, который я сделал, который действует как интерфейс ReST для AppEngine. Все, что вам нужно сделать, это просто определить модели в ReSTify/models.py.
Вы также можете легко добавить аутентификацию без необходимости настройки.
Для начала аль вам нужно сделать, это
import webapp2
import ReSTify
application = webapp2.WSGIApplication(
[
('/api/.*', ReSTify.ReST),
],
debug=True)
https://github.com/budowski/rest_gae
Я создал полноценный REST API для моделей NDB над webapp2. Включает обработку разрешений и многое другое.
хотелось бы услышать ваши мысли:
class MyModel(ndb.Model):
property1 = ndb.StringProperty()
property2 = ndb.StringProperty()
owner = ndb.KeyPropertyProperty(kind='User')
class RESTMeta:
user_owner_property = 'owner' # When a new instance is created, this property will be set to the logged-in user
include_output_properties = ['property1'] # Only include these properties for output
app = webapp2.WSGIApplication([
# Wraps MyModel with full REST API (GET/POST/PUT/DELETE)
RESTHandler(
'/api/mymodel', # The base URL for this model's endpoints
MyModel, # The model to wrap
permissions={
'GET': PERMISSION_ANYONE,
'POST': PERMISSION_LOGGED_IN_USER,
'PUT': PERMISSION_OWNER_USER,
'DELETE': PERMISSION_ADMIN
},
# Will be called for every PUT, right before the model is saved (also supports callbacks for GET/POST/DELETE)
put_callback=lambda model, data: model
),
# Optional REST API for user management
UserRESTHandler(
'/api/users',
user_model=MyUser, # You can extend it with your own custom user class
user_details_permission=PERMISSION_OWNER_USER,
verify_email_address=True,
verification_email={
'sender': 'John Doe <[email protected]>',
'subject': 'Verify your email address',
'body_text': 'Click here {{ user.full_name }}: {{ verification_url }}',
'body_html': '<a href="{{ verification_url }}">Click here</a> {{ user.full_name }}'
},
verification_successful_url='/verification_successful',
verification_failed_url='/verification_failed',
reset_password_url='/reset_password',
reset_password_email={
'sender': 'John Doe <[email protected]>',
'subject': 'Please reset your password',
'body_text': 'Reset here: {{ verification_url }}',
'body_html': '<a href="{{ verification_url }}">Click here</a> to reset'
},
)
], debug=True, config=config)
это отлично! по какой причине вы не хотите использовать конечные точки? – wprater
@wprater, https://code.google.com/p/googleappengine/issues/detail?id=9384 это может быть одной из причин ... – opensourcegeek
@opensourcegeek Я закончил использовать этот (https: // github .com/GoogleCloudPlatform/endpoints-proto-datastore), потому что я хотел использовать конечные точки, но эта библиотека тоже выглядит великолепно! – wprater
- 1. Google App Engine Python - простой обработчик REST
- 2. Аутентификация Google App Engine Python от API
- 3. Вызов API Python - Google App Engine
- 4. Google app engine Calendar API
- 5. google app engine python
- 6. Google App Engine & Python
- 7. Python - Google App Engine
- 8. Google app engine Youtube API
- 9. Google Войти для python Google App Engine
- 10. Python 2.5 Google App Engine
- 11. Google App Engine (python): Аутентификация группой Google
- 12. Неподдерживаемые библиотеки python в Google App Engine
- 13. python google app engine programming
- 14. Google App Engine Launcher (Python)
- 15. Google App Engine Python Datastore
- 16. Python Google App Engine Если
- 17. Python Google App Engine гибкий
- 18. Google App Engine Python добавляющие
- 19. template.render() Google App Engine (python)
- 20. перенаправление Google App Engine (Python)
- 21. Google app engine с python
- 22. одиночек Google App Engine (Python)
- 23. Google App Engine сервис + Go + REST
- 24. Google App Engine Memcache Python
- 25. google app engine using python
- 26. API App Engine (Python) и Provisioning API
- 27. API-интерфейс Google App Engine Java API
- 28. Google App Engine и API календаря Google
- 29. API Quot API для Google App Engine (?)
- 30. Google Drive API + App Engine = время ожидания
Попробуйте взглянуть на ProtoRPC услуг. Конечные точки строятся поверх них, и писать их не так уж плохо. – grim
вы можете использовать Django на GAE, чтобы он мог работать для вас напрямую. –
вы можете построить успокоительные апи с кучами разных микроархивов. Я лично не использую webapp (2), но bobo для такого рода приложений. –