2

私はモデルを持っています

class MyModel(EndpointsModel):
    _message_fields_schema = ('entityKey', 'prop')
    prop = ndb.StringProperty()

および API メソッド:

@MyModel.method(request_fields=('entityKey',),
                  path='mymodel/{entityKey}', http_method='GET', name='mymodel.get')
def mymodel_get(self, mymodel):
    if not mymodel.from_datastore:
      raise endpoints.NotFoundException('mymodel not found.')
    return mymodel

しかし、次のようなクエリを試すと

http://localhost:8080/_ah/api/myapi/v1/mymodel/adsfasf-cm9jay1zdG9wchELEgRBcmVhGICAgICAgIAJDA

404 が表示されます。オブジェクトが存在することはわかっており、それが正しい urlsafe キーであることもわかっています。どうしたの?「entityKey」の代わりに「id」を使用し、整数キーでクエリを実行する場合も、同じコードが機能します。

4

2 に答える 2

0

あなたentityKeyが言及したのは、オブジェクトのとのurlsafeの組み合わせです。typeid

その文字列からキーを作成するには、次のコードを使用します。

rev_key = ndb.Key(urlsafe=urlString)

詳細については、NDB データストア API ドキュメントのこのセクションを参照してください。

于 2014-12-11T12:48:29.457 に答える