2015年12月9日水曜日

クライアントからリクエストされたURLを取得する方法

 こんにちは山田です。
開発環境:ASP.NET2.0
開発言語:C#

リライトをかけたページの改ページと並び替えをしようと思っていた時に、
仮想URLを取得したい場面がありました。

クラスライブラリを探したり、ネットを探したら
綺麗にまとめているページがあったので参考にさせていただきました。

プロパティ 種類 物理/仮想 クエリ情報 追加パス
ApplicationPath アプリケーションパス 仮想 × ×
PhysicalApplicationPath アプリケーションパス 物理 ×
CurrentExecutionFilePath ファイルパス 仮想 × ×
FilePath ファイルパス 仮想 × ×
Path ファイルパス 仮想 ×
PhysicalPath ファイルパス 物理
RawUrl ファイルパス 仮想
Url ファイルパス 仮想(フルURL)
PathInfo 追加パス 仮想 ×
 @IT[ASP.NET]クライアントからリクエストされたURLを取得するには?

 このRawUrlを使って解決しました。
他にもプロパティがあるので試してみようと思います。

2015年12月8日火曜日

OGP設定とは

こんにちは!Sです

今日はOGP設定について・・・

▼OGP(Open Graph Protocol )とは
facebookなどのSNSとウェブページを連結するために設定する記事情報です。

この設定をすると何が違うのかというと、
例えばAさんがfacebookで「いいね!」をした場合にこの設定がされた記事では
Aさんの友達のニュースフィードにも指定されたURL、TDK、サムネイル画像が表示されます。
逆に言えば、この設定をしておかないとニュースフィードに反映されないため
あまり多くの人の目に触れる機会がなかなかありません。。。

▼設定方法
設定は簡単で下記のようなmetaタグをhead内に記述するだけです

<meta property="og:title" content="タイトル"/>
<meta property="og:type" content="blog"/>
<meta property="og:url" content="http://~"/>
<meta property="og:image" content="http://~"/>
<meta property="og:site_name" content="サイト名"/>
<meta property="og:description" content="ディスクリプション"/>

2015年12月7日月曜日

【SQLserver】DBテーブル内のカラムにコメントを登録する

こんにちわ、開発者のⅠです。

さて、今回はDB操作に関するお話です。
クエリ文を作成しそれをプログラム上で実行することで、新規テーブルの作成やカラム追加など、様々な操作が可能です。

その中で、今回はカラムにコメントを登録する方法を伝えします。
カラムの定義変更や追加には【ALTER TABLE】を利用することになりますが、新規にカラムを追加する場合はコメントには何もない状態です。

このコメント、カラム自身がなにを格納するものなのか、それを説明するのに結構重要なものです。コメント自体は手動で登録・編集が可能ですが、カラム作成と同時に登録できれば手間を省けますね。

それでは、早速書いてみたいと思います。
環境は、
・管理プログラム:SQL Server Management Studio
・対象テーブル:日本の観光名所を登録している「dbo.tbl_attractions」
・追加するカラム:設立した年を格納する『year』 とします。
/* カラム『year』の追加 */ 
ALTER TABLE tbl_attractions ADD year datetime

/* カラム『year』にコメントを登録する */
EXEC sys.sp_addextendedproperty  @name=N'MS_Description'
                                ,@value=N'設立した年'
                                ,@level0type=N'SCHEMA'
                                ,@level0name=N'dbo'
                                ,@level1type=N'TABLE'
                                ,@level1name=N'tbl_attractions'
                                ,@level2type=N'COLUMN'
                                ,@level2name=N'year'


これで、カラムにコメントが登録できるはずです。
登録されたかどうかを確認するには、対象のテーブルで右クリックし、デザインを開くとカラムの設定情報の一覧が表示されますから、その中の”説明”に登録したコメントが入っているはずです。

それでは、今日はこの辺りで失礼します。

2015年12月4日金曜日

そもそもWebAPIとは?

こんにちは山田です。
外部サーバとデータの受け渡しをする方法として、
APIという方法があるとわかったのでその調査をしてみました。

よくあるAPIとしてはGeogleMAPや郵便番号の検索が思いつくと思います。

日本の全エンジニアに捧ぐ!現在公開されているAPI一覧【2013年版】



■そもそもWebAPIとは

Application Program Interfaceの略
直訳すると、あるプログラムを、他のアプリケーションから利用するためのインターフェースという意味になります。

目的としては、自社で保有するデータや、システム、アプリケーション、Webサービスの機能を公開して他社で使ってもらうためです。

動きとしては
WebAPIで機能を公開しているサーバに対して、HTTPリクエストの形で送信して、
処理結果がHTTPレスポンスの形で返ってきます。

■URLの設計
方法としてサブドメインに配置する方法 http://api.example.com/
ドメイン下に置く方法 http://example.com/api/
それぞれあります。
自分でつくるサイトは小規模なので、後者でよさそうです。

■外部APIと内部APIの違い
社外の人に使ってもらうものを外部APIと呼び分けています。
社内で完結する場合は内部APIというものになります。

■データ通信形式
XMLとJSON(JavaScript Object Notation)がある
最近では可読性の観点から、JSONを使うことが一般的のようです。

■HTTPリクエストを送る際のポイント
●リクエスト形式
HTTPリクエストを送信する方法としては、大きく分けてJSONとフォームの二つがあります。

フォーム形式が一般的で、フォームでのPOST送信の場合、文字データだけではなく画像や動画などのバイナリデータも送れます。

JSON形式も最近多い形です。こちらは構造化したJSONデータなので、送る際に可読性が上がるというメリットがあります。

5分で絶対に分かるAPI設計の考え方とポイント より
http://www.atmarkit.co.jp/ait/articles/1511/19/news022.html

2015年12月3日木曜日

XMLHttpRequestとは?

こんばんわ、開発者のⅠです。

さて、今回は前々回の投稿についての補足として、APIのひとつであるXMLHttpRequestについて説明したいと思います。

以下のソースは、前々回の投稿での使用例です。
マーカーの情報が記録されたCSVファイルを読み込むための関数 getCSVFile に組み込んでいます。
 
 function getCSVFile() {
   var xhr = new XMLHttpRequest();
   xhr.onload = function () {
   createArray(xhr.responseText);
   };

   xhr.open("get", "markerlist.csv", true);
   xhr.send();
 }
 getCSVFile();

このAPIは、ブラウザ上でサーバーとHTTP通信を行うために利用します。


また、各メソッドの意味については以下の通りです。

【onload】 : レスポンスを受信完了した段階で行う処理を記述します

 【open】: 実際に送信するリクエストを生成します。リクエストの型、ファイルの存在するURL、
       非同期通信を行うか否かを指定します。

 【send】: 生成したリクエストをサーバーへ送信します。


つまり、上に記述した関数 getCSVFileを言い換えてみると、

 「markerlist.csvを対象に非同期通信を行うようGET型のリクエストを生成・送信し、
   この通信が完了した時点で、取得したファイル内のデータを引数として、
  関数createArray(xhr.responseText)を実行する」

という感じでしょうか。

思ったよりも、シンプルに外部ファイルを取得できるのですね……。

それでは、今日はこの辺で失礼します。