Labo

EC-CUBE3 分室

【3.0.15】EC-CUBE API プラグイン(6)

2017年10月13日 / 投稿者名:chiharu


引き続き API プラグインについての調査を進めていきます。
前回はサーバー環境を構築して試しましたが見事に玉砕しました。
何とも恥ずかしいことに、商品詳細情報を取得できるかを試すところまでも到達できない状況です。
今回はとりあえずプラグインが有効に出来るように再度サーバー情報の確認です。
 
と云うことで前回表示されていたエラー内容の確認からです。
幾つかのエラーが発生していますが、明らかな原因があるものから解決したいと思います。
分かり易いエラー内容を確認してみると以下のような内容が出力されています。

Syntax error or access violation:
max key length is 767 bytes

 
上記のエラーは色々な処で見るようになりました。
MySQLの設定の問題ですね。
デフォルトではインデックスキーの最大値が767バイトになっています。
最近は utf8mb4 などの存在するため上記のバイト数を超えてしまう事が多々あるようです。
今回のエラーについても幾つかのテーブルにて制限バイト数を超えてしまっているようです。
 
まぁ、解決方法はいくつかあるのですが手軽なのは MySQL 5.6 に色々な設定を加る方法ですね。
こういう時は VPS などはレンタルサーバーのような製薬が無くてラクチンですね。
 
さぁ、設定を・・・、と思いましたが、このサーバーの場合はMySQL 5.7 にバージョンアップした方がきれいですね。
他に稼働中の環境もない為 MySQL 5.7 にしてしまいましょう。
初期設定の部分が個人的に面倒だと云う理由で 5.6 をインストールしてましたが、ちゃんとするべきですね。
 
 ・
 ・
 ・
 
と云うことで、MySQL 5.7 で再インストールしてみました。
今の処このような環境となりました。
 
 Webサーバー
  Apache/2.4.6 (CentOS) PHP/7.0.24
 
 PHP
  7.0.24
 
 DBサーバー
  MySQL 5.7.19
 
上記に伴いデータベースの作り直しです。
・・・折角なので EC-CUBE 自体も再インストールしてみます。
まだ何も手を付けていないときは気楽に再インストールできますね。
 
 ・
 ・
 ・
 
さぁ、再インストールも完了し、APIプラグインのインストールも完了しました。
今度は無事に「有効」にすることが出来るでしょうか。
・・・無事に有効か出来ました(笑)
無事に有効かも出来たので、次は商品詳細が表示されるかの実験です。
まずは URL から確認してみましょう。

http://<API導入済みEC-CUBE用ドメイン>/api/v0/product/1

上記のURLで問題無く表示されれば前回までの失敗はシステム要件を満たしていなかったからと云うことです(笑)
結果は以下の通りでした。

{"product":{"_calc":false,"stockFinds":[],"stocks":[],"stockUnlimiteds":[],"price01":[],"price02":[],"price01IncTaxs":[],"price02IncTaxs":[],"codes":[],"classCategories1":[],"classCategories2":[],"className1":null,"className2":null,"id":1,"name":"\u30c7\u30a3\u30ca\u30fc\u30d5\u30a9\u30fc\u30af","description_list":null,"description_detail":"\u30bb\u30c3\u30c8\u3067\u63c3\u3048\u305f\u3044\u30c7\u30a3\u30ca\u30fc\u7528\u306e\u30ab\u30c8\u30e9\u30ea\u30fc\u3002\n\u5b9a\u756a\u306e\u9280\u88fd\u306f\u3001\u30b7\u30eb\u30d0\u30fc\u7279\u6709\u306e\u7f8e\u3057\u3044\u8f1d\u304d\u3068\u67d4\u3089\u304b\u306a\u66f2\u7dda\u304c\u7279\u5fb4\u3067\u3059\u3002\u9069\u5ea6\u306a\u91cd\u307f\u3068\u65e5\u672c\u4eba\u306e\u624b\u306b\u5408\u3044\u3084\u3059\u3044\u30b5\u30a4\u30ba\u611f\u3067\u9577\u304f\u611b\u7528\u3044\u305f\u3060\u3051\u307e\u3059\u3002\n\u6700\u9ad8\u7d1a\u30d7\u30e9\u30c1\u30ca\u30d5\u30a9\u30fc\u30af\u306f\u3001\u8d08\u308a\u7269\u3068\u3057\u3066\u3082\u4eba\u6c17\u3067\u3059\u3002","free_area":null,"ProductCategories":[{"product_id":1,"category_id":5},{"product_id":1,"category_id":6}],"ProductClasses":[{"id":1},{"id":2},{"id":3},{"id":4},{"id":5},{"id":6},{"id":7},{"id":8},{"id":9}],"ProductImage":[{"id":1},{"id":2},{"id":3}]}}

 
おぉ~~~、無事に取得できているようです。
実際には詳細項目の内容が表示されていないので不安ですが、ここから先は別問題です。
前回までの エラーコードでは無く、正規の情報が取得できています。
これでテストツールの確認を行っていけそうです。
 
 
システム要件では MySQL について、5.5 でのテストをしていると記載されていました。
システム要件部分はできれば標準インストールの状態で動くバージョンか変更内容を記載してもらえると有難いですね。
 
と云うことで今回はここまでとさせて頂きます。
久しぶりに区切り良く終われてよかったです(笑)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

* Copy This Password *

* Type Or Paste Password Here *

*

コメント欄にコードを挿入したい場合は、[php][/php] を使ってください。