のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,683,000人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレ【PHP】2chat開発スレ【2chを越える】

php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
551 : 1 - 2016/09/17(土) 17:16:17.06 ID:???.net (+27,-1,-1)
552 : 1 - 2016/09/17(土) 17:29:25.24 ID:???.net (-1,-29,-31)
authorization認証よく分からん
とりあえずはリクエストパラメーターでいいか…
553 : nobodyさん - 2016/09/17(土) 17:38:38.30 ID:???.net (+3,-30,-107)
いや、別にOAuth2とか使わないんでしょ?
で、独自認証なんでしょ??そんだったら、
Authorizationヘッダのフォーマットを自由に決めていいんだって
(HTTPのAuthorizaitionヘッダの形式に違反しないかぎり)。
例えば、Authorization : nch {token}
とか
554 : nobodyさん - 2016/09/17(土) 17:42:20.58 ID:???.net (+6,-30,-154)
>>551見ると、Authorization ヘッダについて調べたのセクションに
Authorization: auth-scheme (token68 / auth-params)
ってなってんじゃん。この形式にしたがってフォーマット決めておけばOK。
例えばauth-schemeは「nch」ね(IANAにもちろん登録されてないスキームだけど)。
後はtoken68の形式か。
555 : 1 - 2016/09/17(土) 17:45:18.34 ID:???.net (+2,-30,-57)
なるほど。スキームは自由でいいのか
Authorization : nch (token_id) (token_key)みたいな感じで
556 : nobodyさん - 2016/09/17(土) 17:46:14.52 ID:???.net (+1,-30,-84)
それか>>551
Chatwork API は X-ChatWorkToken: トークン ヘッダ
ってなってるように、独自のリクエストヘッダを定義するとか。
X-NChTokenみたいな。
557 : nobodyさん - 2016/09/17(土) 17:48:34.18 ID:???.net (-1,-30,-68)
>>555
そう。Authorization: BearerとかはOAuth2を使ってるときの仕様であって、
OAuth2使ってないんだから、独自でもOKだと。HTTPの仕様に従ってるかぎり。
558 : nobodyさん - 2016/09/17(土) 17:51:12.40 ID:???.net (+3,-30,-137)
auth-scheme [ 1*SP ( token68 / #auth-param ) ]
厳密にはこうだから、パラメータ2つ渡したいなら
Authorization : nch id=(token_id), key=(token_key)
こんな感じかな。確か,区切りでいいはず。
559 : 1 - 2016/09/17(土) 17:56:31.37 ID:???.net (+57,+29,-22)
それってどこに空白入れてもいいんだよね?
=の前後とか
解析難しそう
560 : nobodyさん - 2016/09/17(土) 17:56:43.62 ID:???.net (+3,-30,-127)
で、認証が必要なAPIに認証せずにリクエストしたら、
ステータスコード401のUnauthorizedでレスポンス返す。
で、レスポンスのヘッダにWWW-Authenticate : nch
って指定して、nchスキームでの認証が必要ですよって示すのが普通。
561 : nobodyさん - 2016/09/17(土) 18:00:31.58 ID:???.net (+3,-30,-101)
RFC 7235には
auth-param = token BWS "=" BWS ( token / quoted-string )
BWS=Bad White Spaceで仕様上は許可してるけど、推奨しないホワイトスペースだね。
562 : nobodyさん - 2016/09/17(土) 18:04:29.65 ID:???.net (+3,-30,-117)
解析自体は難しくない。quoted-stringのを使わなければ。
まず、ヘッダ全体をスペースでSplitする(.NETならString.Split)で、
先頭がauth-scheme。で、今度は残り全体をまず「,」でSplitする。
でそれを今度は「=」でSplitして、終わり。
適宜前後のホワイトスペースをTrimする。
564 : nobodyさん - 2016/09/17(土) 18:14:24.42 ID:???.net (+3,-30,-74)
>items[2].Split(',').Select(i => i.Trim());

items[1].Split(',').Select(i => i.Trim());
こうだった。
だから、君の仕様でquoted-stringを使わないように認証トークン生成して
仕様で決めてくれれば解析は楽。
565 : 1 - 2016/09/17(土) 18:15:14.69 ID:???.net (-1,-29,-42)
思ったんだけどid=(id),key=(key)にするメリットって何?
省略可能なパラメーターがある訳ではないし(id),(key)の方が楽だと思う
仕様でそうなっているから?
566 : nobodyさん - 2016/09/17(土) 18:16:16.49 ID:???.net (-2,-30,-45)
まぁ、もちろん一番楽なのは、
Nch-ID : token_id
Nch-KEY : token_key
と独自ヘッダで分けてくれれば一番楽だね。
567 : 1 - 2016/09/17(土) 18:17:28.80 ID:???.net (+91,+29,-8)
名前被りがなければ自由にヘッダって作っていいんだよね
それならそうしようかな
568 : nobodyさん - 2016/09/17(土) 18:17:57.62 ID:???.net (+35,+13,-18)
>>563
そうだね。仕様でそうなってるからだね。
俺だったら仕様違反はしないけど、もし、(id),(key)にしたいなら、
独自ヘッダにするね。
569 : nobodyさん - 2016/09/17(土) 18:19:56.47 ID:???.net (+73,+29,-12)
>>567
うん。独自ヘッダは最初にX-ZZZZみたいなX-を先頭につける慣習??みたいの
あるっぽいことだけ指摘しておく。
570 : 1 - 2016/09/17(土) 18:20:41.97 ID:???.net (+7,-30,-31)
>>569
なら"X-Token:(id),(token)"にする
571 : 1 - 2016/09/17(土) 18:26:51.23 ID:???.net (+46,+23,+0)
プッシュしました
572 : nobodyさん - 2016/09/17(土) 18:28:16.24 ID:???.net (+45,+13,-23)
了解。idとtokenに使う文字は注意してね。なんで使えるわけじゃないから。
仕様で確認してね。
573 : 1 - 2016/09/17(土) 19:19:03.25 ID:???.net (+4,-29,-34)
>>572
idは数字のみ、tokenはbase64から=を除いたものだから多分大丈夫
574 : nobodyさん - 2016/09/17(土) 20:53:57.80 ID:???.net (+57,+29,-3)
なんだかんだでちゃんと進んでて偉いわ
575 : 1 - 2016/09/17(土) 21:08:17.79 ID:???.net (+18,-9,-4)
エラー関係はCSVで外出しした方が管理楽かも
576 : 1 - 2016/09/17(土) 21:22:09.76 ID:???.net (-1,-29,-9)
twitterの200台ステータスは200 OKしか使ってないみたい
これは分ける必要なさそう
577 : nobodyさん - 2016/09/17(土) 21:22:16.27 ID:???.net (+63,+30,-40)
いやいや、偉くないだろ。ユーザーにとっては、完成させれるか完成させれないかの
どっちかしない。開発者にとっては、完成させれなくても勉強になるけど。
だから、進んでても最終的に完成するかしないかが問題。
578 : nobodyさん - 2016/09/17(土) 21:30:42.88 ID:???.net (+90,+29,-16)
というか、このサーブレットはローカル環境で動いてるの???
579 : 1 - 2016/09/17(土) 21:36:14.21 ID:???.net (+67,+27,-18)
>>578
まだ実際に動かしてはいない
web.xmlとか作ってないからテスト出来ないし
580 : 1 - 2016/09/17(土) 21:36:54.23 ID:???.net (+3,-30,-105)
HTTPステータスコードってこんな感じ?

200 成功
401 認証が必要/認証エラー
403 リクエストの送りすぎ(書き込み間隔が短い)
404 見つからない(スレなど)
409 既に存在する(スクリーンネームなど)
421 リクエストがおかしい(パラメータが足りない、数値に変換出来ない、文字列が正規表現に一致しない、長すぎる)
500 鯖内部でエラー
581 : 1 - 2016/09/17(土) 21:39:51.01 ID:???.net (+39,-26,-103)
例えば、トピックIDを指定して取得するAPIで見つからなかったらエラーを返しているけど、
トピック検索APIで見つからなかったら成功+空の配列を返している
つまり単取得系と多取得系の違い
これってどっちもエラー返すべきだろうか…
582 : nobodyさん - 2016/09/17(土) 21:49:02.01 ID:???.net (+62,+29,-48)
ワロタ。やっぱ動かしてないかww
昨日も書いたけど、すごい水平展開に開発していくな。

http://tools.ietf.org/html/rfc7231
には421のってないな。
まぁ、そんな感じでいいんじゃないかな。
細かいところはAPIによってもマチマチだし。
583 : nobodyさん - 2016/09/17(土) 21:50:44.95 ID:???.net (+60,+27,+1)
>>581
それでいいと思う。検索の方はエラーじゃなくていいと思う。
584 : 1 - 2016/09/17(土) 21:51:08.71 ID:???.net (-1,-29,-5)
ウィキペディア見てた

421 Misdirected Request (RFC 7540)
誤ったリクエスト。
585 : 1 - 2016/09/17(土) 21:52:45.98 ID:???.net (+25,-2,-13)
とりあえずエラーコードは連番でしてみる
586 : 1 - 2016/09/17(土) 21:54:03.23 ID:???.net (+1,-26,-4)
500エラーはエラーコード-1だけでいいか
詳細教えたら危険だろうし
587 : nobodyさん - 2016/09/17(土) 22:00:42.38 ID:???.net (+75,+30,-34)
というか、マジで動かす方を優先した方がいい。
でないと、また、大幅な手戻り発生しそう。
クラスの依存関係で無理って言ったけど、そんなの当たり前。
だから、そこらへんは適当に動くようにつくればいいだけ。後で修正すればいいんだから。
>>544の人もアドバイスしてくれてるのに。
588 : 1 - 2016/09/17(土) 22:02:21.52 ID:???.net (+57,+29,-16)
とりあえず動かした方がいいのか
なら適当にAPI作って動かしてみる
589 : nobodyさん - 2016/09/17(土) 22:10:38.89 ID:???.net (+63,+30,-104)
俺もPHPの勉強し始めてるっていって、この前ASP.NET Coreをやりだしてるっていったけど、
君みたいなやり方してないぞww
初めての作業で全体像見えないまま、クラス設計なんてしようがないし。
だから、とりあえず、1,2つだけモデルクラスを作って、それで次はすぐにWeb APIの方作って、
実際にブラウザからアクセスさせてる。
それで、作り方に問題なさそうって確認してから、おおざっぱに全体の設計を
把握してから残りモデルクラスの作業に取り掛かってる。
590 : nobodyさん - 2016/09/17(土) 22:24:28.58 ID:???.net (+57,+29,-22)
PHPerだけどサーバサイド5日くらいで終わりそうじゃね?
ぼくのかんがえたさいこうの設計目指さなければ
591 : nobodyさん - 2016/09/17(土) 22:27:06.02 ID:???.net (-1,-29,-15)
複雑じゃないならActiveRecordで十分っしょ
592 : nobodyさん - 2016/09/17(土) 22:29:55.08 ID:???.net (+57,+29,-7)
まぁ、元々機能少ないからそんぐらいだろうね。データベースのテーブルも
5,6ぐらいしかないし。
593 : nobodyさん - 2016/09/17(土) 22:33:27.35 ID:???.net (+62,+29,-57)
ただ、俺はPHPで開発環境が悪いのか、コード補完とかあんま効かなくて、
タイプミスとかでエラー、メソッド名もまだ覚えてないから補完したいのにで
出なくていちいちブラウザで調べたりしてブチキレで。ASP.NET Coreの方に移行中だけど。
594 : 1 - 2016/09/17(土) 22:36:38.04 ID:???.net (+57,+29,-25)
5日ってそんな物なのか?
もしかしてここって職業プログラマ多い?
595 : nobodyさん - 2016/09/17(土) 22:44:10.09 ID:nfgV7g+h.net (-15,+30,-159)
君は、HTTPの基本みたいな事だってわかってなかったし新しい事を覚える時間が
かかるんだからしょうがないよ。
でも、なれればテーブル数も5,6ぐらいで小機能だし、5日ぐらいで実装できると思う。
俺はまだサーバーサイドは素人だから慣れが必要だけど。
でも、クライアントサイドやってきた経験から言うと、慣れれば機能的には5日くらいあれば実装できるとは思ってた。

サービスの仕様とか考える時間とかは別問題だから抜かしてね。
単純に実装する時間だけの話ね。
596 : nobodyさん - 2016/09/17(土) 22:44:38.69 ID:???.net (+25,+2,+1)
sageつけ忘れた。
597 : 1 - 2016/09/17(土) 22:50:52.40 ID:???.net (+57,+29,-12)
これで小機能って凄い
俺の中では今まで作ったWEBアプリで一番大きいのに…
598 : 1 - 2016/09/17(土) 23:02:38.97 ID:???.net (+1,-26,-12)
とりあえずコンパイル通ったのでweb.xml作っていきます
599 : nobodyさん - 2016/09/17(土) 23:02:41.15 ID:???.net (+99,+30,-105)
業務とかに比べると全然ちいさいよ。
業務だとテーブルだけでも何十、何百って数あるんだから。
で、それらのテーブルを複数結合したり、バッチで何十のテーブルを見て更新かけたり。

だからテーブル数5,6って学生の宿題用(テーブル数2,3?)に毛が生えたぐらいの規模だと。
2chだってもともと小機能なんだし。ただ、小機能とはいえユーザー数は
圧倒的だから。そこらへんはまた単純に作るだけじゃなく別のノウハウが必要だと思う。
600 : 1 - 2016/09/17(土) 23:07:40.52 ID:???.net (+76,+29,-63)
>>599
テーブルが何百って…そんなにあるのか
2chは単純だからな。ユーザーが多い以外に良い所がない気もするけど、掲示板だとユーザーの数が最大のメリットになるし
専門学校とか大学の工業科ってこういうの作ったりするの?こういう系の仕事するなら工業科進んだ方がいいかな
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について