質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.84%

  • Python

    5906questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • Python 3.x

    4441questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

  • Google Cloud Platform

    100questions

Googloe Cloud Platformでエンドポイントを構築したがうまく動作しない

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 66

Yuki_S

score 287

 前提・実現したいこと

WebAPIの開発を行いたくて、初めてGCPのEndpointsを利用しました。
PythonでEndpointsを構築するためのクイックスタートを参考に開発を進めていましたが、以下のエラーメッセージが発生して困っています。

 発生している問題・エラーメッセージ

{
 "code": 5,
 "message": "Method does not exist.",
 "details": [
  {
   "@type": "type.googleapis.com/google.rpc.DebugInfo",
   "stackEntries": [],
   "detail": "service_control"
  }
 ]
}

 該当のソースコード

yamlのコードが以下の形で行っており、

swagger: "2.0"
info:
  title: "live"
  description: "Get the news."
  version: "1.0.0"
# This field will be replaced by the deploy_api.sh script.
x-google-allow: all
host: "正しく設定しています"
schemes:
  - "https"
paths:
↓こちら正しく動作しない
  "/news-loader":
    get:
      description: "Get the news."
      operationId: "newsload"
      parameters:
        -
          name: query
          in: query
          required: true
          type: string
      responses:
        200:
          description: "Success."
          schema:
            type: string
        400:
          description: "The query is invalid or missing."

↓こちらは正しく動作する
  "/news-reader":
    get:
      description: "Get the news."
      operationId: "newsread"
      parameters:
        -
          name: query
          in: query
          required: true
          type: string
      responses:
        200:
          description: "Success."
          schema:
            type: string
        400:
          description: "The query is invalid or missing."
・・・以下幾つか連続して続く

main.py

import datetime

from flask import Flask
from flask import request
import sportslive
from google.cloud import bigquery

app = Flask(__name__)

SL = sportslive.SportsLive()

↓動作しない
@app.route('/news-loader', methods=['GET'])
def newsloader():
    """Given an query, return that news."""
    query = request.args.get('query')
    querylist = query.split('_')
    query = querylist[0]
    rowcount = int(querylist[1])
    day = querylist[2]

    if query is None:
      return 'No provided.', 400
    if rowcount is None:
        rowcount = 2
    if day is None:
        day = datetime.date.today()
        day = datetime.datetime.strptime(day, '%Y%m%d')
    result = SL.news_loader(query, rowcount, day)
    if result is None:
      return 'not found : %s' % query, 400
    return result, 200

↓動作する
@app.route('/news-reader', methods=['GET'])
def newsreader():
    """Given an query, return that news."""
    query = request.args.get('query')
    if query is None:
      return 'No provided.', 400
    result = SL.news_check(query)
    if result is None:
      return 'not found : %s' % query, 400
    return result, 200

このほか実際に処理するプログラムもありますがSL = sportslive.SportsLive()のクラスの動作は問題なく動作することを確認しています。また、パスを投げた瞬間(1msec以下でレスポンスする)にメソッドが見つからないという文言でエラーが発生しているので、うまくyamlの設定ができていないのではと予想しているのですが、解決法が見つからず質問させていただきました。

 試したこと

以下の設定を試す。デプロイのし直し、サービスの再起動などは行いましたがうまく行きませんでした。

x-google-allow: all

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.84%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Python

    5906questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • Python 3.x

    4441questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

  • Google Cloud Platform

    100questions