0

Google Cloud Endpoints と endpoints-proto-datastore ライブラリを介して API をコーディングしています。

これが私のモデルです:

class Domain(EndpointsModel):
    _message_fields_schema = ('id', 'name', 'enabled', 'adminEmails')
    name = ndb.StringProperty(required=True)
    enabled = ndb.BooleanProperty(required=True)
    adminEmails = ndb.StringProperty(repeated=True)

そして、これは私の削除方法です:

@Domain.method(request_fields=('id',), path='domains/{id}', http_method='DELETE', name='domain.delete')
def delete_domain(self, domain):
    if not domain.from_datastore:
        raise endpoints.NotFoundException('Domain not found.')
    domain._key.delete()
    return domain

モデル自体以外のものを返すことはできますか? 特定の HTTP ステータス コードや VoidMessage などを返すにはどうすればよいですか?

4

1 に答える 1

4

response_message(より一般的に使用されるパラメーターとは対照的に) デコレーターでパラメーターを定義し、response_fieldsそれを に設定できますVoidMessage。そしてVoidMessage、モデルの代わりにメソッドから a を返します。

from protorpc import message_types

(...)

@Domain.method(request_fields=('id',),
               response_message=message_types.VoidMessage,
               path='domains/{id}',
               http_method='DELETE',
               name='domain.delete')
def delete_domain(self, domain):

    (...)

    return message_types.VoidMessage()

もちろん、他の protorpc メッセージをそのように返すこともできます。私の知る限り、どの HTTP ステータス コードを返すかを定義する方法はありません。

于 2014-01-15T22:32:40.173 に答える