
February 7, 2010 09:18 by
Mikie
ამჟამად განხილვის თემად მსურს წარმოვადგინო Web 2.0 - ის ერთ ერთი განუყრელი კომპონენტი
RSS.
როგორ გავაკეთოთ ისე, რომ ჩვენს ვებ გვერდს ჰქონდეს RSS - ის მხარდაჭერა. ანუ როგორ გავხდეთ RSS პროვაიდერები.
პირველ რიგში უნდა გქვონდეს საამისო კონტენტი, რაზეც ნამდვილად ღირს Subscribe - ი შემდეგ კი Rss Reader - ს უნდა მივაწოდოთ სწორი xml. რა არის საჭირო?
მაშ ასე, დავიწყეთ. პირველ რიგში ვქმნით ე.წ. WebHandler ფაილს რომელსაც არ მოჰყვება ზედმეტი HTML და პირდაპირ მიიღებს იმ სახეს რასაც მივუთითებთ ContentType - ში.
შეიქმნა კლასი რომელიც ირთავს IHttpHandler ინტერფეისს 1 მეთოდითა და თვისებით.
public void ProcessRequest (HttpContext context)
public bool IsReusable
{
get {return false;}
}
RSS პროვაიდერ xml - ის ფორმირება უნდა მოხდეს ProcessRequest მეთოდში რისთვისაც გამოიყენება შემდეგი სახის კოდი
public class feed : IHttpHandler {
public void ProcessRequest (HttpContext context)
{
string Root = "http://" + context.Request.Url.Host + context.Request.ApplicationPath + "/";
XNamespace ns = "http://www.w3.org/2005/Atom";
XElement el = new XElement("rss", new XAttribute("version", "2.0"),
new XElement("channel", new XAttribute("title", "Mike Rss"),
new XElement("title", "Mike Rss"),
new XElement("link", Root + "feed.ashx"),
new XElement("description", "That's how am I trying RSS to work"),
new XElement("ttl", "10"),
new XElement("item", new XElement("title", "feed1"),
new XElement("description", "feed1 Description"),
new XElement("guid", Root + "?g=" + Guid.NewGuid().ToString())),
new XElement("item", new XElement("title", "feed2"),
new XElement("description", "feed2 Description"),
new XElement("guid", Root + "?g=" + Guid.NewGuid().ToString())),
new XElement("item", new XElement("title", "feed3"),
new XElement("description", "feed3 Description"),
new XElement("guid", Root + "?g=" + Guid.NewGuid().ToString())),
new XElement(ns + "atom",new XAttribute("href",Root+"feed.ashx"),
new XAttribute("rel","self"),
new XAttribute("type","application/rss+xml"))
));
XDocument doc = new XDocument(el);
context.Response.ContentType = "text/xml";
context.Response.ContentEncoding = System.Text.Encoding.UTF8;
context.Response.Write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + doc.ToString());
}
რომლის პასუხი xml - ში იქნება შემდეგი.
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel title="Mike Rss">
<title>Mike Rss</title>
<link>http://dev.63bits.com/feed.ashx</link>
<description>That's how am I trying RSS to work</description>
<ttl>10</ttl>
<item>
<title>feed1</title>
<description>feed1 Description</description>
<guid>http://dev.63bits.com/?g=f50fdd85-a3eb-4edb-be78-ba9454cb5f59</guid>
</item>
<item>
<title>feed2</title>
<description>feed2 Description</description>
<guid>http://dev.63bits.com/?g=2c0dce68-09bb-4951-8770-8342b814d7a7</guid>
</item>
<item>
<title>feed3</title>
<description>feed3 Description</description>
<guid>http://dev.63bits.com/?g=e7d5349e-cbb2-4c7a-83d5-e96a72fe4e18</guid>
</item>
<atom href="http://dev.63bits.com//feed.ashx" rel="self" type="application/rss+xml" xmlns="http://www.w3.org/2005/Atom" />
</channel>
</rss>
რა ძირითად ატრიბუტებს შეიცავს ეს xml და რისთვის გამოიყენება ისინი:
<channel> ტეგის title ატრიბუტი და შვილობილი ტოტი განსაზღვრავს თქვენი Feed ის დასახელებას,
<link> არის ბმული წყაროზე საიდანაც მოდის xml - ი,
<description> მცირე კომენტარი,
<ttl> ან Time To Live განსაზღვრავს რამდენი წუთი განმავლობაში შეინახოს Reader - მა RSS ქეშში.
<item> ტეგებში, როგორც თავად ხედავთ, გაცილებით მარტივად არის საქმე, დასახელება, მოკლე აღწერა და უნიკალური URL რაზეც უნდა გაილინკოს Feed - ი.
<channel> ტეგის ბოლო ტოტი <atom> განსაზღვრავს atom - ის მხრადაჭერასაც.
ბოლო ეტაპი რაც დარჩა გასაკეთებელი ეს არის Feed - ზე გალინკვა. რაც შეგვიძლია 2 გზით გავაკეთოთ
- გამოვაჩინოთ RSS - ის მხარდაჭერა ბროუზერში
ამისათვის იმ გვერდის, სადაც გვინდა რომ გამოჩნდეს RSS - ის ნიშანი, head - ში ჩავამატოთ შემდეგი სკრიპტი:
<link rel="alternate" type="application/rss+xml" title="Rss" href="~/feed.ashx" />
სადაც href - ის მნიშვნელობა არის თქვენი ashx - ფაილის მისამართი.
-
ჩვეულებრივი ლინკი
<a href="feed.aspx"> [Content] </a>
სულ ესაა. მიაჭირეთ თქვენს RSS ლინკს და გადამისამართდით Google Reader - ში ან სხვა ნებისმიერ RSS მკითხავში.
P.S. RSS xml - ის შედგენისას თქვენ ძალიან დაგეხმარებათ
Feed Validator - ი .
95b2a7c3-3fa6-42b3-b950-81f2a4eb21ae|3|5.0