J'ai une application Web hébergée sur un pool d'applications x64 (32 bits non autorisé) qui doit appeler une DLL de structure 3.5 fournie par un fournisseur. Aucune de ces contraintes n'est sous mon contrôle. Désirant json comme modèle pour ma demande/réponse, j'ai besoin d'écrire des api RESTful qui serviront cette DLL à mon application web. Je me suis rendu compte que le kit WebAPI ne m'appliquait pas car ils nécessitaient des frameworks 4.0, quelle est mon alternative?Quel kit (le cas échéant et non WebAPI) à utiliser pour écrire des API RESTful pour les services qui ne peuvent s'exécuter que sur un framework 3.5?
0
A
Répondre
1
WCF REST prend en charge les services Web reposants avant .NET 4.0. Voir: A Guide to Designing and Building RESTful Web Services with WCF 3.5
0
outil pour écrire votre propre WCF sur 3.5 cadres pour REST:
lors de l'installation, vous verrez
Microsoft.Http.dll
Microsoft.Http.Extensions.dll
Microsoft.ServiceModel.Web.dll
dans le répertoire: C: \ Program Fichiers (x86) \ Microsoft WCF REST \ WCF REST Starter Kit Aperçu 2 \ Assemblies
- Pour utiliser WCF comme service WCF Rest vous devez activer webHttpBindings.
- Il prend en charge les verbes HTTP GET et POST respectivement par les attributs [WebGet] et [WebInvoke] .
- Pour permettre à d'autres verbes HTTP que vous devez faire une configuration dans IIS à accepter la demande de ce verbe particulier sur les fichiers .SVC
- données en passant par les paramètres en utilisant une configuration WebGet a besoin.
- UriTemplate doit être spécifié Il prend en charge les formats XML, JSON et ATOM .
using System.Runtime.Serialization.Json; //System.ServiceModel.Web
Me[] sizes = new Me[] { new Me{ radius = 34, height = 66 }, new Me{ radius = 24, height = 68 } }; // Me [DataContract]
DataContractJsonSerializer szr = new DataContractJsonSerializer(typeof(Me[]));
MemoryStream toJSONBuf= new MemoryStream();
szr.WriteObject(toJSONBuf, sizes);
string strJSON = Encoding.Default.GetString(toJSONBuf.ToArray());
toJSONBuf.Close();
//Response.Write(Server.HtmlEncode(strJSON));
// REVERSE: the same serializer
toJSONBuf= new MemoryStream(Encoding.Unicode.GetBytes(strJSON));
sizes = szr.ReadObject(toJSONBuf) as Me[];
toJSONBuf.Close();
0
La réponse à ma question est la combinaison de ces deux documents
Implementing the URI Design with UriTemplate
How to: Create a Basic WCF Web HTTP Service
Le premier article est assez long sans foyer, mais la le deuxième est plutôt bon. La seule autre aide dont vous avez besoin est l'édition du fichier .config que vous devez utiliser l'outil d'édition WCF fourni par VS.
Pourquoi pensez-vous que l'API Web doit être mis sur un cadre x64? Et pourquoi n'êtes-vous pas capable de rechercher vous-même les outils ASP.NET REST API? – mason
N'aurait pas dû dire 64. Vois encore ma question. Peut-être que vous pouvez toujours y répondre. Merci –
Bon, alors maintenant vous l'avez contraint à .NET 3.5. Encore une fois, pourquoi n'êtes-vous pas capable de rechercher vous-même ces outils? Demander des recommandations d'outils est spécifiquement hors sujet ici. Et de toute façon, une API REST est extrêmement simple dans son concept. Pourquoi ne pas essayer de mettre en place votre propre? – mason