Showing posts with label SharePoint 2013. Show all posts
Showing posts with label SharePoint 2013. Show all posts

Monday, October 29, 2012

SharePoint 2013 REST Service

SP 2010 is the first version of SharePoint which supports REST API/Service (REpresentational State Transfer). SP 2010 has REST located at http://[web site URL/_vti_bin/ListData.svc.

SharePoint 2013 has few changes related to REST access URL. SP 2013 has REST located at http://[web site URL]/_api/.

SharePoint 2013 REST endpoints map to SharePoint Client object model types and members. As we know that, SharePoint Client Object Model allows access to various objects in the hierarchy down from the Site Collection i.e. Site (Site Collection), Web (Web Site), List, ListItem etc.

Similarly, the SP 2013 REST allows access to object Site and the objects below it in the hierarchy.

SP 2010 REST API was allowing access to only lists and their items in a web site. SP 2010 REST never given access to Site or Web objects whereas SP 2013 REST can access these objects as well.

Let us see how REST works and how the REST endpoints are formed.


Access Site Collection Object and its properties

http://[Web Url]/_api/site

Use above URL format to access the site collection object in Atom feed format. Do you re-collect “Site” object in Client Object Model representing site collection? Here we used the same object after “_api/”.

Web URL can be any web site in the site collection. Site object can be accessed from any web site in the site collection.

Look at the below XML response for the site collection object.


 
There are two XML namespaces “m:” and “d:” representing metadata and data namespaces respectively.  Complex types and collections are represented as Atom feeds in REST and belong to default namespace. The properties with primitive types belong to “<m:properties>” node.

The “term” attribute on the “<category>” node has value set to fully qualified name of the type of Client Object Model.

The <link> node represents the collections and complex type properties of the object. The “href” attribute provides the /site relative URL to access the atom feed for collection/complex type.

e.g. To access Root Web of the site collection, use

http://[web URL]/_api/site/RootWeb

Similarly one can access the primitive properties by appending the name property in URL after “/site/”. The response is not in Atom feed format. It is just a XML fragment. e.g. To know if the site collection allows use of SharePoint Designer, use

http://[web URL]/_api/site/AllowDesigner

The properties presented in REST response do not contain all properties of “Site” type. e.g “Site” has property “Usage”. There is no <link> node for it in the response, but we can access the property using below URL.
http://[web URL] /_api/site/usage

Access Web site and its properties
http://[Web Url]/_api/web

The above REST endpoint lets us access the basic Web object of Client Object Model.
 
To read web “Title”, use

http://[web URL]/_api/web/title
To read lists collection in a web site, use

http://[web URL]/_api_web/lists

The response from above REST endpoint contains nodes for each list/library in the web site. You can access the specific list, using the <id> node value inside the specific list’s entry.

To read the specific list details, use
http://[Web Url]/_api/web/Lists(guid'[Guid of the list]')

To access the items of a list, use
http://[Web Url]/_api/web/Lists(guid'[guid of the list]')/Items

To access an item with specific ID, use
http://[Web Url]/_api/web/Lists(guid'[guid of the list]')/Items([id of the item])

Saturday, September 29, 2012

My First Look at SharePoint 2013 Site

[The content is specific to SharePoint 2013 Preview. The RTM may come up with some changes.]

SharePoint 2013 - I was waiting for you. Yes, today I started working on SharePoint 2013 (Preview) site.

I put the URL in browser and this is what I see on home page.


I have highlighted few parts in the picture. These are new in the UI and are not self-explanatory.

Let us have a look at each one.

Edit Links

What links are they talking about? Do they mean page links? Can we re-organize or update page links? Why duplicates are placed at top and below left navigation? Too many questions... came to my mind. Let's give it a try.

Click "Edit Links" in the top. The UI changes in-place as below.

I clicked the "+" sign and it presented me with screen below. It asks for the "Text to be displayed as link" and the target URL.

Can't I specify the target to open the link in new window? There is no way. This a Global navigation, use it only for links scoped to the content in the site collection.

Click "OK". It added a link in Global navigation. But the link is not saved... we have to click on "Save".

Here is how it looks after saving.

Can I edit the link? Yes, I can. Click on "Edit Links" and then click on the link itself. It presents the below screen changes. Click on "Link" icon which is similar to infinity symbol.

It allows to update the link. (Note: This applies to only saved links. If you have added a link but not saved and before saving you want to edit. It does not allow to do it.)

So the duplicate below left navigation...it updates the links in left navigation and it should contain links scoped to the site level content.

Focus On Content

There is an icon on right side at the top icons collection. On hovering the icon, it displays a tooltip saying "Focus on content".

I clicked it...the left navigation bar disappeared. I again clicked it, the left navigation re-appeared. This is really good. Rather than the navigation items occupying the real-esate of screen, it will become available for content. User will have a better experience while working with the content. When required, user can invoke the navigation on demand. Really, cool...!

Stay tuned...!more stuff coming up about SP 2013.

(The screen-shots are from Office 365 Preview site. There is not much difference in the UI of actual SharePoint 2013 site. So the notes apply to SharePoint 2013 Preview site.)