如何为JIRA Rest API创建访问令牌?我有相关数据
Jira的Rest API Oauth 示例采用三方法,并且非常不清楚要发送的实际参数是什么(我希望Swagger是更广泛使用的标准!).
更详细地说,我有以下用例:在Web窗体(ASPX)门户应用程序中创建新员工时,我需要创建新的JIRA帐户并将其分配给项目(以及项目中的角色).
因此,我想使用OAuth2双方式身份验证来实现此目的.我可以用基本身份验证破解它,但我真的想要正确地做到这一点.
尝试查找使用此方法的代码示例时出现问题..NET示例非常稀缺,甚至其他语言的示例通常使用基本身份验证(每次调用时传输的用户名和密码)或少数使用三脚法的示例.
我找到了AnotherJiraRestClient,但是查看它使用RestClient nuget的代码(这很好)但是使用HttpBasicAuthenticator(这很糟糕).
我浏览了所有提供的Authenticators,OAuth2AuthorizationRequestHeaderAuthenticator看起来很有希望,但它要求我已经拥有访问令牌.所以这就是为什么最后的问题是"如何使用两条腿的方法创建访问令牌?"
我已经使用以下设置在JIRA上创建了应用程序链接:
我们正在使用Asp.Net WebApi创建RestService.但由于某些原因Name,DataMember在尝试使用[FromURI]属性反序列化复杂属性时,属性会在属性中被忽略.
例如,我们可能有:方法:
public IHttpActionResult Get([FromUri]User user)
Run Code Online (Sandbox Code Playgroud)
模型:
[DataContract]
public class User
{
[DataMember(Name = "username")]
public string Username{ get; set; }
[DataMember(Name = "isActive", IsRequired = false)]
public bool? Active { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
反序列化时user,我们得到的用户名如预期,但null对Active.另一方面,在序列化数据时,我们得到了两个isActive并且username符合预期.如果我们active在查询字符串中发送请求,它按预期工作.
这显然是个问题IModelBinder.由于某种原因它不使用DataMember的Name属性.我检查了包含哪些格式化程序,并注册了4个默认格式化程序:
System.Net.Http.Formatting.JsonMediaTypeFormatter
System.Net.Http.Formatting.XmlMediaTypeFormatter
System.Net.Http.Formatting.FormUrlEncodedMediaTypeFormatter
System.Net.Http.Formatting.JQueryMvcFormUrlEncodedFormatter
Run Code Online (Sandbox Code Playgroud)
我无法检查请求使用哪一个.我会假设它,FormUrlEncodedMediaTypeFormatter但我无法确定.此外,我不确定它是否支持Name财产.
我已经检查了一个解决方案,我能找到的最接近的主题是WebAPI DataMember名称在通过application/x-www-form-urlencoded进行de/serial化时没有使用,但它不使用[FromUri]但application/x-www-form-urlencoded属性并没有真正解决.
任何想法,指针或建议将不胜感激.